Проблема с импортом 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
>>> 
user24956
источник
Не могли бы вы изменить название вашего вопроса так, чтобы оно точно обозначило проблему, с которой вы столкнулись?
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 "
Луиджи Пирелли,
Заголовок изменен, спасибо, я попробую это и
доложу
1
Все еще не повезло, я попробовал много перестановок PATH и PYTHONPATH безрезультатно.
user24956

Ответы:

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 и нажав клавишу ВВОД.

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

  3. Импортируйте библиотеки PyQGIS одним из следующих способов:

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

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

    б. Выполнить скрипт Python. Запустите python my_pyqgis_script.pyв оболочке OSGeo4W. Я бы начал с очень простого .

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

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

Герман Каррильо
источник
Здравствуй! У меня есть сомнения по этому поводу. Почему var_entorno_osgeo4w.bat? Я сделал все эти строки, но в этом parte выдает ошибку. Также я прочитал в этих справочных сообщениях foruns и все еще получаю ошибку import qgis.core (запускается в оболочке osgeo4w).
Барбара Дуарте
Потому что это имя файла, который я предоставляю вам для установки переменных среды. Итак, вы идете в папку, где находится этот файл .bat (на изображениях, которые вы видите, в котором он находится C:\dllo), и запускаете файл .bat, записав имя файла и нажав Enter
Герман Каррильо
Я попытался использовать решение выше - я попытался запустить 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 . Это часть установки пакета QGIS 2.18.15 x64 на основе пакета OSGeo4W для Windows 10.

При выполнении этот пакетный файл открывает интерпретатор Python. import qgisуспешно бежит изнутри.

Этот пакетный файл содержит строку (как отметил Герман Каррильо в своем первоначальном ответе):

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

незадолго до запуска интерпретатора Python.

Энди Харфут
источник
Это
избавляет
Кажется, это начинает работать, но затем выдает ошибку «SyntaxError: неверный синтаксис» при запуске C: \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py
Донни В.
Причина, по которой я получил эту ошибку, заключается в том, что я не запускал питон, который использует QGIS. Работает сейчас
Донни В.