Sự cố với nhập qgis.core khi viết tập lệnh PyQGIS độc lập


18

Tôi đang cố gắng viết một kịch bản python độc lập trong windows 7 sử dụng qgis.core và các thư viện qgis khác.

Tôi đã tìm thấy một câu hỏi cũ về chủ đề này ở đây: Viết các tập lệnh Python độc lập bằng PyQGIS? và đã làm theo lời khuyên của mình, bằng cách sử dụng hướng dẫn tại đây: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-appluggest

Mã được đề xuất là:

set PYTHONPATH=c:\qgispath\python

theo dõi bởi:

set PATH=C:\qgispath;%PATH%

Tôi thấy rằng IDLE không thích "thiết lập lúc ăn xin, vì vậy mã của tôi trông như thế này:

PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core

va tôi lây:

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core

Tôi đã thử mọi biến thể của các con đường tôi có thể nghĩ đến bao gồm loại bỏ;% PATH% "ở cuối (có vẻ hơi thừa) nhưng không thể tìm thấy thêm thông tin nào. Có ai có ý tưởng nào về tôi không đi sai

BIÊN TẬP:

Sau khi xem bình luận của Luigi Pirelli, giờ tôi đã thử:

>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> 

Bạn có thể vui lòng sửa đổi tiêu đề của câu hỏi của bạn theo cách nó sẽ phác thảo chính xác vấn đề bạn đang gặp phải không?
SS_Rebelious

đặt PYTHONPATH làm giá trị mà bạn có thể đọc khi gõ "qgis" trong Bảng điều khiển Python của QGIS ... giá trị là gì? Trong trường hợp của tôi: <module 'qgis' từ 'C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc'> => Tôi sẽ thêm vào PYTHONPATH đường dẫn: "C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis "
Luigi Pirelli

Tiêu đề được sửa đổi, cảm ơn, tôi sẽ thử điều này và báo cáo lại trong phần chính của câu hỏi
user24956

1
Vẫn không có may mắn, tôi đã thử nhiều hoán vị của PATH và PYTHONPATH nhưng không có kết quả.
dùng24956

Câu trả lời:


12

Nếu bạn đã cài đặt QGIS qua OSGeo4W, tôi khuyên bạn nên theo dõi quy trình làm việc này (tôi vừa thử nghiệm nó trên Windows 7):

  1. Mở Shell OSGeo4W . Start->All programs->OSGeo4W->OSGeo4W Shell.

  2. Đặt biến môi trường . Cách ưa thích của tôi là thực thi tệp dơi này (cập nhật 2016.11.03: tệp dơi này ) từ OSGeo4W Shell. Như bạn có thể thấy, tệp đặt các biến môi trường theo cách này:

    set PYTHONPATH=%OSGEO4W_ROOT%\\apps\\qgis\\python
    set PATH=%OSGEO4W_ROOT%\\apps\\qgis\\bin;%PATH%
    

    Tất nhiên, bạn cần tự kiểm tra xem những đường dẫn đó có tồn tại trong HĐH của bạn không và điều chỉnh chúng nếu cần thiết.

    Vì vậy, hãy tải xuống tệp .bat và thực thi nó bằng cách truy cập nó từ OSGeo4W Shell và nhấn ENTER.

    nhập mô tả hình ảnh ở đây

  3. Nhập thư viện PyQGIS bằng một trong các phương pháp sau:

    a. Nhập trình thông dịch Python. Chạy pythontrong Shell OSGeo4W và nhập các thư viện theo cách thủ công.

    nhập mô tả hình ảnh ở đây

    b. Thực thi một tập lệnh Python. Chạy python my_pyqgis_script.pytrong Shell OSGeo4W. Tôi sẽ bắt đầu với một thứ rất đơn giản .

    nhập mô tả hình ảnh ở đây

Luồng công việc đã được đăng (bằng tiếng Tây Ban Nha) vài năm trước trên GeoTux và vẫn hoạt động. Như bạn có thể thấy, tôi không bao gồm các biến môi trường trong tập lệnh Python, nhưng đặt chúng trong Shell OSGeo4W.


Chào! Tôi có một nghi ngờ về điều đó. Tại sao var_entorno_osgeo4w.bat? Tôi đã làm tất cả các dòng này nhưng trong phần này cho tôi một lỗi. Ngoài ra tôi đã đọc trong các forun trợ giúp này và tôi vẫn nhận được lỗi nhập qgis.core (chạy trong vỏ osgeo4w).
Bárbara Duarte

Bởi vì đó là tên của tệp mà tôi đang cung cấp cho bạn để đặt các biến môi trường. Vì vậy, bạn đi đến thư mục chứa tệp .bat (trong các hình ảnh bạn thấy nó nằm trong C:\dllo) và chạy tệp .bat bằng cách viết tên của tệp và nhấn Enter.
Germán Carrillo

Tôi đã thử sử dụng giải pháp ở trên - Tôi đã thử chạy my_pygis_script.py và gặp lỗi nhập: Không có mô-đun có tên qgis.core. Làm thế nào tôi có thể sửa lỗi này?
kflaw

Tôi cũng đã cố gắng nhập qgis.core trong pyscripter và tôi gặp một lỗi nhập khác: không có mô-đun nào có tên sip
kflaw

1
Tôi nhận được 'Không có mô-đun có tên qgis.core' nếu tôi thử phương pháp được đề xuất ở đây. Nếu tôi sử dụng python.exe trong qgis / bin làm thông dịch viên, tôi sẽ gặp lỗi 'không có mô-đun có tên trang web' khi tôi cố gắng nhập qgis.core. Tôi đã lãng phí nhiều giờ để cố gắng sử dụng pyqgis.
Alexander

6

Tôi vừa vật lộn với một vấn đề tương tự, và nhận thấy một tệp bó trong thư mục OSGeo4W \ bin có tên là python-qgis.bat . Đây là một phần của gói OSGeo4W dựa trên cài đặt QGIS 2.18.15 x64 trên Windows 10.

Khi được thực thi, tệp bó này sẽ mở trình thông dịch Python. import qgischạy thành công từ bên trong.

Tệp bó này chứa dòng (như được lưu ý bởi Germán Carrillo trong câu trả lời ban đầu của anh ấy):

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%

ngay trước khi trình thông dịch python được đưa ra.


điều này sẽ giảm bớt nỗi đau khi cấu hình thủ công các biến môi trường, cảm ơn
Hicham Zouarhi

Điều này dường như bắt đầu hoạt động nhưng hơn là gây ra lỗi "Cú pháp: Cú pháp không hợp lệ" khi chạy C: \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py
Donny V.

Lý do tôi gặp phải lỗi đó là vì tôi không chạy con trăn mà QGIS đang sử dụng. Hoạt động ngay!
Donny V.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.