setup.py 将顶级模块放在子目录中
setup.py put top level module in subdirectory
我有一个看起来像这样的项目:
tool.py
utils/
tool2.py
tool3.py
我想将它们捆绑到一个发行版中,以便我可以从命令行调用 tool
或 tool2
或 tool3
。但是到目前为止,我无法弄清楚如何在不创建新的 utils
python 模块的情况下使 setup.py 包含 utils/
下的脚本。基本上我想在 setup.cfg 中执行此操作而不更改我的目录布局:
[options.entry_points]
console_scripts =
tool = tool:main
tool2 = tool2:main
tool3 = tool3:main
如果我展平我的项目目录以便所有 3 个都在根目录中,它可以工作,但可能有很多实用工具我不想在根目录中乱七八糟。但似乎如果我将它们放在 utils
下,setup.py 想要将它们创建为 utils
模块下的子模块。
一个潜在的解决方法是:
[options]
scripts =
tool.py
utils/tool2.py
utils/tool3.py
但是你必须始终键入 .py
后缀才能从命令行调用,而我更愿意将其关闭,这样感觉更像“命令行”。
我想做的事情可行吗?
我通过以下方式解决了这个问题:
[options]
scripts =
dist_scripts/tool
dist_scripts/tool2
dist_scripts/tool3
其中 dist_scripts/tool
是 tool.py
的相对软链接,等等。似乎工作正常。
我有一个看起来像这样的项目:
tool.py
utils/
tool2.py
tool3.py
我想将它们捆绑到一个发行版中,以便我可以从命令行调用 tool
或 tool2
或 tool3
。但是到目前为止,我无法弄清楚如何在不创建新的 utils
python 模块的情况下使 setup.py 包含 utils/
下的脚本。基本上我想在 setup.cfg 中执行此操作而不更改我的目录布局:
[options.entry_points]
console_scripts =
tool = tool:main
tool2 = tool2:main
tool3 = tool3:main
如果我展平我的项目目录以便所有 3 个都在根目录中,它可以工作,但可能有很多实用工具我不想在根目录中乱七八糟。但似乎如果我将它们放在 utils
下,setup.py 想要将它们创建为 utils
模块下的子模块。
一个潜在的解决方法是:
[options]
scripts =
tool.py
utils/tool2.py
utils/tool3.py
但是你必须始终键入 .py
后缀才能从命令行调用,而我更愿意将其关闭,这样感觉更像“命令行”。
我想做的事情可行吗?
我通过以下方式解决了这个问题:
[options]
scripts =
dist_scripts/tool
dist_scripts/tool2
dist_scripts/tool3
其中 dist_scripts/tool
是 tool.py
的相对软链接,等等。似乎工作正常。