Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

단일 파일에 Python 모듈을 캡슐화하는 방법은 무엇입니까?


일반적으로 Python 모듈을 단일 파일에 캡슐화할 수 없습니다. 그렇게 하면 파이썬이 사용하는 모듈 검색 방법(파일 및 디렉터리)이 파괴되기 때문입니다. 머신에 모듈을 설치할 수 없는 경우(권한이 충분하지 않아) virtualenv를 사용하거나 모듈 파일을 다른 디렉토리에 저장하고 다음 코드를 사용하여 Python이 주어진 모듈에서 모듈을 검색하도록 할 수 있습니다.

>>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
>>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.

virtualenv를 사용하여 격리된 로컬 Python 환경을 만들 수도 있습니다. 해결되는 기본 문제는 종속성 및 버전 중 하나이며 간접적인 권한입니다. LibFoo 버전 1이 필요한 응용 프로그램이 있지만 다른 응용 프로그램에는 버전 2가 필요하다고 상상해 보십시오. 이 두 응용 프로그램을 모두 어떻게 사용할 수 있습니까? /usr/lib/python2.7/site-packages(또는 플랫폼의 표준 위치가 무엇이든)에 모든 것을 설치하면 업그레이드해서는 안 되는 응용 프로그램을 의도치 않게 업그레이드하는 상황이 되기 쉽습니다. 이것은 권한이 없기 때문에 시스템에 패키지를 설치할 수 없는 사용 사례에서도 사용할 수 있습니다. 가상 환경에 대한 자세한 내용은 https://virtualenv.pypa.io/en/stable/

문서를 참조하세요.