setup.py - 如何设置一个子文件夹为主包目录?
setup.py - how to set a sub-folder as the main package directory?
我的项目结构:
/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 布局(因为 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')
...
)
包
我的项目结构:
/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 布局(因为 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')
...
)
包