2017-11-17 2 views
0

배포 가능한 파이썬 모듈을 만들고 싶습니다. 따라서 사용자에게 패키지 이름을 호출하는 것만으로 내 모듈의 내부 함수 을 호출하려고합니다.패키지 이름을 사용하여 파이썬 모듈을 호출하는 방법

/my_package/
/my_package/__init__.py
/my_package/SRC/
/my_package/src/__init__.py
/my_package/src/my_module.py

및 내용 : mymodule.py :

def test() : pri NT ('! 안녕하세요')이 경우

, 나는 사용자가처럼 내 모듈을 사용할 수 있도록하려면 : MP로

>>> 수입 myPackage에
>>> mp.test()
안녕하세요.

마찬가지로 tensorflow, numpy 등!

__init__.py 파일 및 경로 정보는 어떻게 구성해야합니까 ??

파일에서 사전 :

답변

1

에 감사 :

/my_package/__init__.py

이 줄을 추가 :

from src.my_module import test 
+0

아, 감사합니다! 그것은 효과가있다! :) –

+0

질문이 하나 더 있습니다 ... 내부 패키지를 숨기려면 어떻게해야합니까? 예 : 리포지토리가 /my_package/src/my_module.py에 "MyClass"가 있으면 사용자가 콘솔에 "type (MyClassInstance)"을 입력하면 ""를 반환합니다. 다음과 같이 표시하고 싶습니다. 제안 사항 ?? 이미 self .__ module__ 문자열을 변경하려고 시도했지만 작동하지 않았습니다. –

0

난 당신이하지 않는 가정 단지 test를 노출 할 기능을하지만 다른 많은 기능을합니다. 따라서 다른 사람이 사용할 외부 메서드를 노출하는 my_package/__init__.py__all__ 목록을 별도로 유지 관리 할 수 ​​있습니다.

그래서, 당신의 my_package/__init__.py 당신은 약 __all__ 여기 읽을 수

from src.my_module import test 


__all__ = [test, ] 

과 같습니다 https://docs.python.org/2/tutorial/modules.html#importing-from-a-package

+0

완벽! 많이 감사합니다 :) –

+0

다행스럽게 도와 줬어! 당신은 다른 사람들에게 도움이 될 수 있도록 답변을 upvote/accept 할 수 있습니다 :) –

관련 문제