我的项目结构:
/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')
...
)
包