Проблема з імпортом qgis.core під час написання автономного сценарію PyQGIS


18

Я намагаюся написати окремий сценарій python у Windows 7, який використовує qgis.core та різні інші бібліотеки qgis.

Тут я знайшов старе питання на цю тему: Написання автономних скриптів Python за допомогою PyQGIS? і дотримувався його порад, користуючись посібником тут: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications

Код, запропонований там:

set PYTHONPATH=c:\qgispath\python

далі:

set PATH=C:\qgispath;%PATH%

Я виявив, що IDLE не сподобався "набір на початку, тому мій код виглядає так:

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

і я отримую:

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

Я намагався будь-який варіант контурів, який я можу подумати про включення видалення;% PATH% "наприкінці (що виглядає трохи зайвим), але не зміг знайти більше інформації. Хто-небудь має ідеї, де я міг би бути пішов не так?

Редагувати:

Побачивши коментар Луїджі Піреллі, я зараз спробував:

>>> 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
>>> 

Чи можете ви змінити назву свого питання так, як воно б окреслило точну проблему, з якою ви стикаєтесь?
SS_Rebelious

встановіть PYTHONPATH як значення, яке ви можете прочитати, ввівши "qgis" на консолі QGIS Python ... що таке значення? У моєму випадку: <модуль 'qgis' з 'C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc'> => Я повинен додати до PYTHONPATH шлях: "C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis "
Луїджі Піреллі

Заголовок змінено, дякую, я спробую це і повідомляю ще в основному питанні
user24956

1
Досі не пощастило, я безперечно спробував багато перестановок PATH та PYTHONPATH.
користувач24956

Відповіді:


12

Якщо ви встановили QGIS через OSGeo4W, я пропоную вам дотримуватися цього робочого потоку (я тільки тестував його в Windows 7):

  1. Відкрийте оболонку OSGeo4W . Start->All programs->OSGeo4W->OSGeo4W Shell.

  2. Встановити змінні середовища . Мій кращий спосіб - виконати цей файл bat (оновлений 2016.11.03: цей файл bat ) з оболонки OSGeo4W. Як бачите, файл встановлює змінні середовища таким чином:

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

    Звичайно, вам потрібно перевірити, чи ці шляхи існують у вашій ОС, і при необхідності відрегулювати їх.

    Отже, завантажте .bat файл та виконайте його, відкривши його з оболонки OSGeo4W та натиснувши ENTER.

    введіть тут опис зображення

  3. Імпортуйте бібліотеки PyQGIS одним із наступних методів:

    а. Введіть інтерпретатора Python. Запустіть pythonоболонку OSGeo4W та імпортуйте бібліотеки вручну.

    введіть тут опис зображення

    б. Виконати сценарій Python. Запуск python my_pyqgis_script.pyу оболонці OSGeo4W. Я б почав з дуже простого .

    введіть тут опис зображення

Робочий потік був розміщений (іспанською мовою) кілька років тому в GeoTux і досі працює. Як бачите, я не включаю змінні середовища в сценарій Python, але встановлюю їх у оболонці OSGeo4W.


Привіт! У мене є сумніви з цього приводу. Чому var_entorno_osgeo4w.bat? Я робив усі ці рядки, але в цій програмі подає помилку. Також я читаю в цих довідках foruns, і я все ще отримую помилку імпорту qgis.core (запустити в оболонці osgeo4w).
Барбара Дуарте

Тому що це ім'я файлу, який я вам надаю, щоб встановити змінні середовища. Отже, ви переходите до папки, в якій знаходиться C:\dllo.
Герман Каррілло

Я намагався використовувати рішення вище - я спробував запустити my_pygis_script.py і отримати помилку імпорту: Немає модуля з іменем qgis.core. Як я можу це виправити?
kflaw

Я також намагався імпортувати qgis.core в pyscripter, і я отримую ще одну помилку імпорту: жоден модуль з ім'ям sip
kflaw

1
Я отримую "Немає модуля з іменем qgis.core", якщо спробую запропонований тут метод. Якщо я використовую python.exe в qgis / bin як інтерпретатор, я отримую помилку "без модуля, названого сайтом", коли я намагаюся імпортувати qgis.core. Я витрачав багато годин, намагаючись використати pyqgis.
Олександр

6

Я щойно боровся з подібною проблемою і помітив пакетний файл у папці OSGeo4W \ bin під назвою python-qgis.bat . Це частина встановленого пакетом OSGeo4W пакета QGIS 2.18.15 x64 на Windows 10.

Після виконання цього пакетного файлу відкривається інтерпретатор Python. import qgisуспішно працює зсередини.

Цей пакетний файл містить рядок (як зазначив Герман Каррільо в його оригінальній відповіді):

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

безпосередньо перед запуском інтерпретатора python.


це знімає біль при ручному налаштуванні змінних оточення, дякую
Hicham Zouarhi

Це, здається, починає працювати, але чим видає помилку "SyntaxError: недійсний синтаксис" при запуску C: \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py
Donny V.

Причина У мене виникла помилка через те, що я не запускав пітон, який використовує QGIS. Працює зараз!
Донні В.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.