我需要将包写入存储库,但它是一个小型快速包,因此我认为不需要将文件放入子目录。我只是想要:
import mypkg.module1
带目录结构
root_folder/
- setup.py
- __init__.py # the init for package "mypkg" (empty)
- module1.py
而且我不想被限制增加文件夹层次结构,如下所示:
root_folder/
- setup.py
- mypkg/ # WHY would I do that for 1 module??
- __init__.py
- module1.py
# Content of setup.py
from setuptools import setup
setup(name='MyPkg',
packages=['mypkg']
package_dir={'mypkg': '.'})
但结果,import mypkg失败并import module1有效,而不是期望的import mypkg.module1.
我找到了这个问题,但是“只需将 setup.py 向上移动一个文件夹”的答案不适合我。
在这里找到设置参数文档后,我尝试定义一个命名空间包:
# Content of setup.py with a namespace package
from setuptools import setup
setup(name='MyPkg',
packages=['thisdir']
package_dir={'thisdir': '.'},
namespace_packages=['mypkg'])