我的包有一些可选的安装
# for extra 'cmd'
cmd_line_requirements = [
'Click>=6.0'
]
setup函数定义了这样的额外内容:
extras_require={
'cmd': cmd_line_requirements,
},
并且entry_points定义如下:
entry_points={
'console_scripts': [
'threedigrid=threedigrid.cli:main [cmd]',
],
},
当我用pip安装包时
pip install --editable .
未安装Click,但我的threedigrid.egg.info中的entry_points.txt包含以下内容:
[console_scripts]
threedigrid = threedigrid.cli:main [cmd]
我对此感到有点困惑,因为我认为只有在指定了[cmd]选项的情况下安装软件包时才会生成控制台脚本。 which threedigrid
产生
/home/<>/.virtualenvs/grid_test/bin/threedigrid
我是否误解了动态依赖关系的工作原理?
答案 0 :(得分:1)
始终会创建入口点,但尝试在没有threedigrid
的情况下运行脚本[cmd]
会导致pkg_resources.DistributionNotFound
例外:
点击&#39;未找到分发并且是应用程序要求