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


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.