2014-11-26 4 views
1

필자의 경우, 여러 다른 모듈에서 사용되는 보조 기능을 포함하는 일련의 파이썬 모듈이 있습니다. LIBS 폴더에 넣었고, LIBS 모듈을 사용하여 특정 작업을 수행하는 다른 모듈을 포함하는 동일한 경로 수준의 다른 폴더를 가지고 있습니다. 현재, 모든 모듈이 LIBS 모듈을 가져 오기 위해이 작업을 수행합니다.일부 Python 모듈 집합을 전역으로 가져 오는 방법은 무엇입니까?

import sys 
sys.path.insert(0, '../LIBS') 

import lib_module1 
import lib_module2 
.... 

프로젝트가 커지면 목에 통증이 시작됩니다. 각 새 모듈에 대해 이러한 보조 LIBS 모듈에 대한 많은 수의 import 문을 기록해야합니다.

LIBS 폴더가있는 동일한 경로의 lelvel에있는 폴더에있는 다른 모듈의 모든 LIBS 모듈을 자동으로 가져올 수있는 방법이 있습니까?

+0

가능한 [Python의 폴더에있는 모든 모듈로드 중] (http://stackoverflow.com/questions/1057431/loading-all-modules-in-a-folder-in-python) – user1251007

+1

나는 복제 할 수 없습니다. 추가 단계가 포함되어 있으므로 이것이 중복 된 것으로 생각하십시오. 대답은 그 질문에 기초 할 수도 있지만이 질문은 __init__.py (이 질문으로 인해 방금 배운 것)에서 시작한다고 가정하지 않습니다. – realityinabox

답변

4

이 들어

__init__.py 

이 친절 ModulesStackoverflow를 참조 할 수 있습니다.

+0

나는 또한 __path__.py가 필요하다고 생각하십니까? – erogol

+0

아니요, 필수 사항은 아닙니다. \ __ init__.py에 필요한 모듈을 모두 가져올 수 있습니다. –

0

실제로 있습니다! LIBS 모듈을 다른 시스템과 마찬가지로 시스템에 설치된 "실제"모듈 (또는 패키지)로 취급하십시오.

즉, 코드를 설치하려면 setup.py 스크립트를 작성해야합니다. 일반적으로는, 개발 디렉토리 내부에서 수행되는 모듈이 함께 설치됩니다 : 이것은 파이썬 라이브러리가 시스템에 저장되어있는 곳의 site-packages 서브 디렉토리에 모듈을 설치합니다

$ sudo python setup.py install 

.

다른 사람의 작업 setup.py 및 지원 파일을 복사 한 다음 패키지에 맞게 수정하여 시작하는 것이 좋습니다. 예를 들어 여기에 my quoter module이 있습니다.

공정 경고 : 이것은 매우 중요한 단계입니다. 모듈을 로컬로 배포하는 방법을 배우게 될뿐만 아니라 원하는 경우 PyPI에 게시 할 수도 있습니다. 진정한 패키지로 이동하는 단계는 더 많은 표준 문서를 작성하고, 더 많은 테스트를 개발하고 실행하며, more rigorous version specifications을 채택하고, 코드 의존성을보다 명확하게 식별하고 정의하며 많은 "전문화"단계를 수행하도록 권장합니다. 이것들은 모두 더 나은, 더 안정적이고, 더 이식성 있고,보다 쉽게 ​​배포 된 코드로 배당금을 지불합니다. 그러나 학습 곡선이 때때로 가파르다는 것을 인정하지 않으면 나는 거짓말을합니다.