공통 정의를 사용하는 여러 스크립트가 있습니다. 여러 파일로 분할하는 방법은 무엇입니까? 또한 응용 프로그램을 내 시나리오에 어떤 식 으로든 설치할 수 없습니다. 동시에 실행되는 임의의 수의 버전을 가질 수 있어야하며 수퍼 유저 권한없이 작동해야합니다. 내가 함께 왔어요 솔루션은 다음과 같습니다 : 모든 스크립트파이썬 응용 프로그램을 모듈화하는 방법
- 중복 코드. 지저분 해, 아마도 최악의 구성표.
- 모든 스크립트와 공통 코드를과 을 사용하여로드하는 단일 디렉토리에 넣으십시오. 이 접근 방식의 단점은 입니다. 응용 프로그램보다 다른 디렉토리에 내 라이브러리를 추가하고 싶습니다.
- 공통 코드를 자체 디렉토리에 넣고 모든 하위 모듈을 가져 오는
__init__.py
을 작성하고 마지막으로from . import
을 사용하여로드합니다. 코드를 체계적으로 유지하지만,__init__.py
을 유지 관리하고 이름을 한정하려면 약간의 오버 헤드가 있습니다. - 는
- 로드하여 (파이썬 3
exec
)execfile
. 이전의 두 가지 접근 방법의 장점을 결합했습니다. 모듈당 줄 하나만 필요하며 전용을 사용할 수 있습니다. 반면에,이 은 파이썬 모듈 개념을 피하고 은 전역 이름 공간을 공격합니다. -
distutils
을 사용하여 모듈을 작성하고 설치하십시오.이 은 모든 파이썬 스크립트에 대한 라이브러리를 설치하고 수퍼 유저 권한 이 필요하며 다른 응용 프로그램에 영향을 미치므로 내 경우에는 적용 할 수 없습니다.
sys.path
및 import
에 라이브러리 디렉토리를 추가합니다. 나는이 경향이 있지만,
sys.path
로 치장하고 있는지 여부는 잘 모르겠습니다.
가장 좋은 방법은 무엇입니까?
+1 : PYTHONPATH 환경 변수 만 설정하면됩니다. 간단하고 깔끔하고 휴대 가능하며 깨끗합니다. 어디에서나 작동합니다. –
@ S.Lott : 쉘 환경이있는 모든 곳에서 작동합니다. 게다가 이것에 대한 시작 스크립트가 필요합니다. 이것은 – phihag
@phihag를 복잡하게 만듭니다. 실제로 시작 스크립트가 필요하지 않습니다. PYTHONPATH는 .bashrc 또는 Windows 설정에서 설정할 수 있습니다. –