通过 setup.py
将 Python 控制台脚本安装到我的路径中基本上有两种方法:
setup(
...
entry_points = {
'console_scripts': [
'foo = package.module:func',
],
}
)
和
setup(
...
scripts = [
'scripts/myscript.sh'
]
)
有什么区别?我看到第一种方法允许我为我的脚本选择好的、特定的名称,但是还有其他区别吗?不同的原始用途、兼容性(setuptools、distutils、...?)、用法、...?我很困惑,一个很好的详细回复可以帮助我(可能还有其他人)正确理解这一切。
更新:自从我提出问题 PyPA发表 these cool docs on the topic .
最佳答案
(很棒的)Click 包的文档 suggest a few reasons使用入口点而不是脚本,包括
- 跨平台兼容性和
- 避免让解释器将
__name__
分配给__main__
,这可能导致代码被导入两次(如果另一个模块导入您的脚本)
Click 是实现函数的好方法,可用作 entry_points
,顺便说一句。
关于python - setup.py 中 entry_points/console_scripts 和脚本之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787036/