我有一个项目看起来像这样:
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
后缀才能从命令行调用,而我更喜欢将其关闭;命令liny";。
我想做的事情可能吗?
我通过做一些类似的事情来解决这个问题:
[options]
scripts =
dist_scripts/tool
dist_scripts/tool2
dist_scripts/tool3
其中dist_scripts/tool
是tool.py
的相对软链接等。似乎工作正常。