【问题标题】:setup.py - how to set a sub-folder as the main package directory?setup.py - 如何将子文件夹设置为主包目录?
【发布时间】:2020-10-13 13:11:43
【问题描述】:

我的项目结构:

/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

【问题讨论】:

  • 如果我理解正确,你想要package_dir = 'myproject'
  • 你可能会觉得this thread很有趣。
  • @Iguananaut 谢谢,就是这样。如果您发表评论作为答案,我会接受。

标签: python pip setuptools


【解决方案1】:

您可以使用所谓的 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')
...
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2011-12-15
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多