파이썬 콘솔에서 스크립트를 가져올 수없는 이유는 무엇입니까?


9

qgis python 콘솔로 작업하고 있습니다. 나는 일반적으로 모든 파이썬 스크립트를 ~ / Scripts / python에 저장합니다. .bashrc에서 PYTHONPATH를 ~ / Scripts / python으로 설정했지만 QGIS 내부의 콘솔에서 sripts를 가져올 수는 없습니다.

Create_Figures_2D라는 스크립트를 가져 오려고 할 때 발생하는 오류는 다음과 같습니다.

import Create_Figures_2D
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D

pygis에 대한 PYTHONPATH를 어떻게 설정합니까?


1
~/Scripts/python일반적으로 나를 위해 작동하는 PATH에 추가 하십시오. 확인하십시오import os; os.path
Nathan W

답변:


11

Python 콘솔에서 다음을 실행하십시오.

import sys
sys.path

PYTHONPATH 항목이 나열되어 있는지 확인하십시오. 그 환경 변수는 아마도 QGIS의 Python을 실행하는 데 사용할 수 없기 때문에 추측하지 않습니다.

스크립트 폴더를 콘솔의 sys.path에 추가하려면 일반 append ()를 수행하십시오.

sys.path.append('~/Scripts/python')

그런 다음 해당 콘솔 세션에 대한 모듈을 가져올 수 있어야합니다. ~를 사용자의 전체 홈 경로로 확장하는 것이 좋습니다 (Python이 ~ 확장인지 확실하지 않음).

편집 : ~ 확장 sys.path에서 지원 되지 않는 것 같습니다 (적어도 Mac에서는).

QGIS의 Python 콘솔은 Python 모듈 'console.py'에 의해 생성됩니다. 따라서보다 영구적으로 sys.path에 사용자 정의 경로를 추가하려면 console.py 파일을 편집하고 모듈 뒤에 sys.path.append ( 'path / to / my / scripts') 문을 추가하십시오. 수입 섹션.

console.py는 여기에 있습니다 (Mac의 경우 KyngChaos.com QGIS 패키지 사용 ).

/Applications/QGIS.app/Contents/Resources/python/qgis/console.py

물론 이것은 QGIS.app 업데이트에서 지워지고 다시 수정해야 할 입니다.

실행중인 QGIS Python 인터프리터의 sys.path에 대한 조정은 다른 플러그인에서도 사용할 수 있습니다.

더 안전한 대안은 필요할 때마다 sys.path.append ()를로드하고 수행하는 간단한 개발 PyQGIS 플러그인을 만드는 것입니다. 플러그인 unload ()의 sys.path에서 해당 경로를 제거 할 수도 있습니다. 그런 플러그인의 sys.path 조정이 이미로드 된 콘솔에서 사용할 수 있는지 테스트하지 않았습니다 (추측입니다.)


귀하의 핵은 지금까지 잘 작동합니다. ubuntu 12.04에서 파일은 /usr/share/pyshared/qgis/console.py
Renaud

우수한! 그건 그렇고, 파이썬 콘솔이 추가 경로를 인식하도록 Windows 7에서 QGIS를 다시 시작해야했습니다.
Dirk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.