วิธีการติดตั้งไลบรารี่ของบุคคลที่สามสำหรับ QGIS บน Windows


18

ฉันจะใช้ห้องสมุดบุคคลที่สามในปลั๊กอิน QGIS บน Windows ได้อย่างไร ฉันได้พัฒนาปลั๊กอินที่ใช้ rasterio และ numpy สำหรับลูกค้า แต่เขามีปัญหาในการติดตั้ง rasterio และ numpy

จริง ๆ แล้ว rasterio และ numpy ได้รับการติดตั้งในระบบหลัก Python (C: \ Python27) แต่ฉันต้องการ QGIS Python ในการจดจำมัน

จะทำอย่างไร?

คำตอบ:


23

QGIS ที่เผยแพร่โดย OSGeo4W มักจะมาพร้อมกับการติดตั้ง Python ของตัวเองและแพ็คเกจของตัวเองที่เป็นอิสระจากการติดตั้ง Python "ปกติ" ของคุณ

วิธีที่ง่ายที่สุดในการติดตั้งแพ็กเกจ Python ในการกระจาย OSGeo4W คือการเปิดOSGeo4W Shellและใช้ pip จากที่นั่น นี้จะติดตั้งแพคเกจลงในการกระจายหลาม QGIS ใช้ในกรณีของฉันอยู่ที่และโมดูลตามที่C:\OSGeo4W64\apps\Python27\ C:\OSGeo4W64\apps\Python27\Lib\site-packagesคุณยังสามารถทำสิ่งปกติpip listภายในOSGeo4W ShellและWindows Shellปกติของคุณ(cmd.exe) และเปรียบเทียบผลลัพธ์เพื่อดูแพ็คเกจที่คุณอาจหายไป

หากคุณไม่ต้องการติดตั้งแพ็กเกจเป็นการติดตั้ง Python สองครั้งคุณสามารถลองเปลี่ยนPythonPathเพื่อรวมแพ็คเกจจากการติดตั้งหนึ่งไปยังอีกการติดตั้ง

แก้ไข: คำตอบนี้ตรงคำถามเดิมเกี่ยวกับpipเพื่อติดตั้งโมดูลที่จะใช้กับ QGIS ใน Windows OP ได้แก้ไข / กลั่นกรองคำถามแล้วดังนั้นคำตอบนี้ค่อนข้างกว้าง


3
ในการใช้ pip ใน OSGeoW shell ฉันต้องทำpython -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl
ชิป

13

Numpy ได้รับการติดตั้งเป็นค่าเริ่มต้นใน QGIS (รุ่นสแตนด์อโลนรุ่น OSGeo4W) สำหรับrasterioมีปัญหามากมาย ฉันรู้ว่า rasterio มีประสิทธิภาพและใช้งานง่าย (ฉันใช้) แต่ทำไม rasterio ในปลั๊กอิน QGIS ในขณะที่คุณมีฟังก์ชั่นทั้งหมดของ PyQGIS? (มันถูกออกแบบมาสำหรับเปลือกงูหลามหรือสคริปต์เพื่อไม่ให้ใช้กับ QGIS / PyQGIS เป็นFionaสำหรับรูปร่างไฟล์)

ใน Linux หรือ Mac OS X (ระบบ Unix) QGIS ใช้การติดตั้ง Python มาตรฐาน (เป็นอิสระจาก QGIS) และหากติดตั้งหรืออัพเกรด Python ได้ง่าย (มีการติดตั้งคอมไพเลอร์จำนวนมาก)

ใน Windows Python ไม่ได้รับการติดตั้งเป็นค่าเริ่มต้นและ QGIS จะติดตั้งเวอร์ชั่นของเขาเอง ในการติดตั้งโมดูล Python แท้ๆ (โดยไม่ต้องใช้ C, C ++ ไลบรารี่ ) คุณมีวิธีแก้ไขปัญหา ( QGIS Standalone และ Python Modules , ติดตั้ง Python setuptools ลงใน OSGeo4W Pythonหรือติดตั้ง PySAL สำหรับ OSGeo4W )

แต่สำหรับโมดูลที่ต้องเรียบเรียง (ไม่มีค่าคอมไพเลอร์โดยปริยาย) มันไม่ใช่เรื่องง่าย คุณสามารถลองคัดลอก / วางโมดูลที่ติดตั้งไว้ใน QGIS Python site_folder แต่มีปัญหา

Rasterioจำเป็นต้องรวบรวมกับไลบรารีGDAL ที่ติดตั้งไว้และถ้าคุณติดตั้งจากChristoph Gohlke Windows Binaries ที่ไม่เป็นทางการสำหรับแพ็คเกจ Python Extensionผมไม่แน่ใจว่ารุ่น GDAL ที่ใช้โดย QGIS นั้นเหมือนกัน (สำหรับการอ้างอิงไปยัง ห้องสมุด dll)

หากคุณใช้เฉพาะ numpy และ rasterio ทำไมไม่สคริปต์อิสระหรือไม่


ลิงค์ที่ 1 ใช้งานไม่ได้
nickves

แก้ไขแล้วขอบคุณและฉันแก้ไขข้อความสำหรับปัญหา rasterio เฉพาะ
ยีน

ผู้ใช้จำเป็นต้องใช้สิ่งนี้จาก QGIS นอกจากนี้เครื่องคำนวณแรสเตอร์ของ QGIS นั้นใช้งานไม่ได้ดังนั้นฉันจึงไม่สามารถใช้งานได้โดยตรง
George Silva

0

จากภายในคอนโซล python 2.7.14 ของ Qgis 2.18.28 สิ่งนี้ใช้ได้สำหรับฉัน มันหลีกเลี่ยงการต้องใช้พรอมต์กับเส้นทางหลามแบบสัมบูรณ์

import subprocess
subprocess.check_call(['python', '-m', 'pip', 'install', 'openpyxl'])

ตามที่นักพัฒนา pip ไม่สนับสนุน pip.main หรือ pip._internal.main https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program ฉันแก้ไข sys.executable ที่แนะนำเป็น 'python' เพราะใน Qgis เป็น qgis เอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.