我的软件包有一些可选安装

# for extra 'cmd'
cmd_line_requirements = [
    'Click>=6.0'
]


设置函数对额外的定义如下:

extras_require={
    'cmd': cmd_line_requirements,
},


并且entry_points定义如下:

entry_points={
    'console_scripts': [
        'threedigrid=threedigrid.cli:main [cmd]',
    ],
},


当我用pip安装软件包时

pip install --editable .


单击未安装,但是我的threedigrid.egg.info中的entry_points.txt包含以下内容:

[console_scripts]
threedigrid = threedigrid.cli:main [cmd]


我对此感到有些困惑,因为我认为只有在指定了[cmd]选项的情况下安装软件包时,才会生成控制台脚本。 which threedigrid产量

/home/<>/.virtualenvs/grid_test/bin/threedigrid


我是否误解了动态依赖项的工作原理?

最佳答案

入口点总是创建的,但是尝试在没有threedigrid的情况下运行脚本[cmd]会导致pkg_resources.DistributionNotFound异常:


  找不到“点击”分布,应用程序需要该分布

07-24 05:36