【发布时间】:2017-11-10 22:46:16
【问题描述】:
我想打包我的代码以仅公开主要功能。我的目录是这样的:
./
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
它在public_module.py 的第一行抛出ImportError: no module named internal_modules.A。
我知道如果我将my_module.internal_modules 作为另一个包添加到我的setup.py 声明中,我可以修复它,但这将使我的internal_modules 公开,A.py 和B.py 从已安装的包中可见。
我发现了一个类似的问题here,但它对我不起作用
【问题讨论】:
标签: python python-2.7 module pip packages