setup.py - 如何将子文件夹设置为主包目录?



我的项目结构:

/myproject/       <- I would like to skip that folder
/mypackage/
/subpackage/
mymodule.py
run.py
- setup.py

run.py内,我想从这样的mymodule.py导入:

from mypackage.subpackage.mymodule import something

而不是:

from myproject.mypackage.subpackage.mymodule import something

setup()有没有办法将入口点定义为mypackage并跳过myproject

您可以使用所谓的 src-layout(因为src/通常用作包的顶级目录。 见 https://setuptools.readthedocs.io/en/latest/setuptools.html#using-a-src-layout

如果使用setup.cfg你可以这样写:

[options]
package_dir=
=src
packages=find:
[options.packages.find]
where=src

或者等效地,使用旧式setup.py

from setuptools import find_packages
setup(
...
package_dir={'': 'src'}
packages=find_packages(where='src')
...
)

最新更新