【发布时间】:2021-07-07 20:56:55
【问题描述】:
我需要将包写入存储库,但它是一个小型快速包,因此我认为不需要将文件放入子目录。我只是想要:
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。
我找到了this question,但“将 setup.py 向上移动一个文件夹”的答案不适合我。
在找到设置参数文档here后,我尝试定义一个命名空间包:
# Content of setup.py with a namespace package
from setuptools import setup
setup(name='MyPkg',
packages=['thisdir']
package_dir={'thisdir': '.'},
namespace_packages=['mypkg'])
【问题讨论】:
-
也许这会让你走上正轨:stackoverflow.com/a/58429219——命名空间很可能不是你想要的。 -- 你可能有兴趣查看
py_modules。
标签: python setuptools python-packaging