[英]Is it possible to use static Python modules in the builtin table as submodules of a Python package?
[英]Hide implementation modules and submodules in package
我想打包我的代碼以僅公開主要功能。 我的目錄是這樣的:
./
setup.py
my_module/
__init__.py
public_functions.py
internal_modules/
__init__.py
A.py
B.py
other_modules.py/
__init__.py
C.py
在public_functions
我做進口從一些操作internal_modules.A
但不能從internal_modules.B
,都A.py
和B.py
使用一些功能從C.py
。
我的setup.py
如下:
from setuptools import setup
setup(name='my_module',
version='0.1',
description='my_awesome_module',
author='Me',
author_email='example@mail.com',
license='MIT',
packages=['my_module'],
zip_safe=False)
我想使用pip進行安裝,但是一旦安裝后,我就不想再從包中看到我的internal_modules
了。
我可以正確安裝它,但是當我這樣做時
from my_module import public_module
它會引發ImportError: no module named internal_modules.A
public_module.py
的第一行中ImportError: no module named internal_modules.A
。
我知道如果將my_module.internal_modules
作為另一個軟件包添加到setup.py
聲明中,則可以解決此問題,但這將使我的internal_modules與已安裝軟件包中的A.py
和B.py
公開。
您可以通過強調模塊名稱來隱藏導入中的模塊內部:
_yourmodulename轉到此處。
E:你還可以定義__all__
在包的__init__
-只有模塊名稱從__all__
將通過進口*進口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.