독립형 PyQGIS 스크립트를 작성할 때 가져 오기 qgis.core 문제


18

qgis.core 및 기타 다양한 qgis 라이브러리를 사용하는 Windows 7에서 독립형 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 % "를 제거하는 것을 포함하여 생각할 수있는 모든 경로의 변형을 시도했지만 (더 이상 불필요한 것처럼 보임) 더 이상 정보를 찾을 수 없었습니다. 잘못되어가는?

편집하다:

Luigi Pirelli의 의견을 본 후 이제 시도했습니다.

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

QGIS Python Console에서 "qgis"를 입력 할 수있는 값으로 PYTHONPATH를 설정하십시오. 값은 무엇입니까? 내 경우 : 'C : / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc'> 에서 <module 'qgis' > => PYTHONPATH에 경로를 추가했습니다 : "C : / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis "
Luigi Pirelli 님이

제목 수정, 감사합니다, 나는 이것을 시도하고 질문의 본문에 다시보고
user24956

1
여전히 운이 없다, 나는 PATH와 PYTHONPATH의 많은 순열을 시도했지만 아무 소용이 없었다.
user24956

답변:


12

OSGeo4W를 통해 QGIS를 설치 한 경우이 워크 플로우를 따르십시오 (Windows 7에서 방금 테스트 한 것임).

  1. OSGeo4W Shell을 엽니 다 . Start->All programs->OSGeo4W->OSGeo4W Shell.

  2. 환경 변수를 설정하십시오 . 내가 선호하는 방법은 OSGeo4W Shell 에서이 bat 파일 (2016.11.03 : 이 bat 파일 업데이트 )을 실행하는 것입니다 . 보시다시피, 파일은 다음과 같은 방식으로 환경 변수를 설정합니다.

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

    물론 OS에 해당 경로가 있는지 직접 확인하고 필요한 경우 조정해야합니다.

    따라서 .bat 파일을 다운로드하여 OSGeo4W Shell에서 액세스 한 후 Enter 키를 눌러 실행하십시오.

    여기에 이미지 설명을 입력하십시오

  3. 다음 방법 중 하나를 사용하여 PyQGIS 라이브러리를 가져 오십시오.

    ㅏ. 파이썬 인터프리터를 입력하십시오. pythonOSGeo4W Shell에서 실행 하고 라이브러리를 수동으로 가져 오십시오.

    여기에 이미지 설명을 입력하십시오

    비. 파이썬 스크립트를 실행하십시오. python my_pyqgis_script.pyOSGeo4W 쉘에서 실행하십시오 . 나는 매우 간단한 것으로 시작할 것이다 .

    여기에 이미지 설명을 입력하십시오

워크 플로우는 몇 년 전에 GeoTux 에 (스페인어로) 게시 되었으며 여전히 작동합니다. 보시다시피, 파이썬 스크립트에는 환경 변수를 포함시키지 않고 OSGeo4W Shell에서 설정합니다.


안녕하세요! 나는 그것에 대해 의심이있다. 왜 var_entorno_osgeo4w.bat입니까? 나는이 모든 줄을했지만이 부분에서 나에게 오류를 준다. 또한이 도움말 foruns를 읽었으며 여전히 import qgis.core 오류가 발생합니다 (osgeo4w 셸에서 실행).
Bárbara Duarte

그것이 환경 변수를 설정하기 위해 제공하는 파일의 이름이기 때문입니다. 따라서 해당 .bat 파일이있는 폴더 (파일이있는 이미지에서 C:\dllo)로 이동하고 파일 이름을 작성하고 Enter를 눌러 .bat 파일을 실행하십시오.
Germán Carrillo

위의 솔루션을 사용하려고했습니다-my_pygis_script.py를 실행하고 가져 오기 오류가 발생했습니다 : qgis.core라는 모듈이 없습니다. 이 문제를 어떻게 해결할 수 있습니까?
kflaw

또한 pyscripter에서 수입 qgis.core로했는데, 나는 또 다른 가져 오기 오류 : 모금라는 이름의 모듈
kflaw하지

1
여기에 제안 된 방법을 시도하면 'qgis.core라는 모듈이 없습니다'라는 메시지가 나타납니다. qgis / bin 내의 python.exe를 인터프리터로 사용하면 qgis.core를 가져 오려고 할 때 'site 모듈 없음'오류가 발생합니다. pyqgis를 사용하는 데 많은 시간을 낭비했습니다.
Alexander

6

방금 비슷한 문제로 씨름하고 OSGeo4W \ bin 폴더에서 python-qgis.bat 라는 배치 파일을 발견했습니다 . 이것은 Windows 10에서 OSGeo4W 패키지 기반 QGIS 2.18.15 x64 설치의 일부입니다.

이 배치 파일이 실행되면 Python 인터프리터가 열립니다. import qgis내에서 성공적으로 실행됩니다.

이 배치 파일에는 다음 줄이 포함됩니다 (Germán Carrillo가 원래 답변에서 언급 한대로).

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

파이썬 인터프리터가 시작되기 직전에.


이것은 환경 변수를 수동으로 구성하는 어려움을 없애줍니다.
Hicham Zouarhi

이것은 작동하기 시작한 것으로 보이지만 C : \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py를 실행할 때 "SyntaxError : invalid syntax"오류가 발생합니다
.

그 오류가 발생한 이유는 QGIS가 사용하는 파이썬을 실행하지 않았기 때문입니다. 지금 작동합니다!
Donny V.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.