다른 Python 스크립트에서 한 Python 스크립트의 변수를 사용합니까?


9

모든 데이터 소스의 위치가있는 변수가 포함 된 단일 파이썬 파일을 설정하고 싶습니다. 그런 다음 다른 모든 스크립트에서 사용되며 데이터 소스가 변경되면 하나의 파일 만 편집하면됩니다.

내 Data_sources.py는 다음과 같습니다.

BC_BEC = "Database Connections\\BC.sde\\FOREST_BC.BC_Eco\\BC.BC_BEC"
BC_TFL = "Database Connections\\Forest_BC.sde\\BC.BC_Admin\\BC.TFL_Boundary"

등등...

Data_sources.py에서 다른 모든 스크립트가 이러한 변수를로드하거나 액세스하도록하려면 어떻게해야합니까?


Python 모듈이나 GIS 용 사이트 패키지가 아닌 순수한 Python과 같은 질문은 일반적으로 Stack Overflow 에서 연구 / 문의해야합니다 .
PolyGeo

답변:


10

Distutils 를 사용 하여 패키지화 하여 실행하는 모든 Python 스크립트에서 가져올 수있는 설치된 Python 모듈을 작성할 수 있습니다 .

파이썬 문서에서 :

foo.py 파일에 포함 된 foo라는 모듈을 배포하기 만하면 설정 스크립트는 다음과 같이 간단 할 수 있습니다.

from distutils.core import setup
setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )

그런 다음 통해 설치할 수 있습니다

python.exe setup.py install

그런 다음 모든 Python 스크립트에서 foo를 가져 오거나 사용할 수 있습니다

python.exe setup.py bdist_wininst

모듈을위한 Windows 설치 프로그램을 작성하여 다른 컴퓨터에 배포 할 수 있습니다.


'Byte of Python'책에는 중앙 가져 오기 모듈을 사용하여 빌드하는 예제를 보여주는 멋진 장이 있습니다.
jonatr

나는 모듈 만들기에 대한 제안을 좋아하지만 잘 알지 못합니다. "python.exe setup.py install"명령은 foo.py에 대한 포인터를 사용합니까, 아니면 현재 foo.py에있는 것을 사용합니까? 나중에 foo.py를 변경하면 모듈이 여전히 최신 상태입니까? 감사.
사용자 오류

나는 또한 그 책을 찾을 것이다. Jason과 jonatr의 도움에 감사드립니다.
사용자 오류

어휘 수정 :보다 정확한 파이썬 단어는 "패키지"입니다. 문서를 찾는 데 도움이되고 패키지와 모듈이 파이썬 세계에서 서로 다른 두 가지라는 것을 분명히합니다. 또한, 제안 / 힌트 : setup.py develop(대신 install) 패키지를 편집하면 다시 설치하지 않아도 패키지를 저장하자마자 수정됩니다. (이것은 아마도 원래 질문자의 data_sources.py에 적합 할 것입니다.)
Dan S.

3
사용자는 가져 오기 방법을 묻지 않습니까? 아래에 답하십시오.
sgillies

12

Data_sources.py와 동일한 디렉토리에있는 스크립트에서

from Data_sources import BC_BEC, BC_TFL

상단에. 작업 디렉토리는 수정하지 않으면 항상 파이썬 경로의 헤드에 있기 때문에 작동합니다.

>>> import sys
>>> sys.path[0] == ''
True

참조 : http://diveintopython.org/getting_to_know_python/everything_is_an_object.html#d0e4550

데이터를보다 광범위하게 공유하려면 다른 사람들이 제안한 것처럼 패키지화하면됩니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.