如何解决即使不存在所需的额外内容,Pip 也会安装 console_scripts 入口点
鉴于这个相当小的 setup.py(greenlet 和 gevent 只是任意依赖项的占位符)
from setuptools import find_namespace_packages,setup
setup(
name='foo',version='0.0.1',platforms='any',packages=find_namespace_packages(),install_requires=['greenlet'],extras_require={
'bar': ['gevent']
},entry_points={
'console_scripts': [
'foo-script = foo.script:main','bar-script = foo.bar:main [bar]'
]
}
)
foo/script.py
包含此内容
def main():
try:
import greenlet
except:
print('Dependency missing.')
else:
print('Found dependency.')
和包含此内容的 foo/bar.py
def main():
try:
import gevent
except:
print('Dependency missing.')
else:
print('Found dependency.')
我会假设,当我运行 pip install .
时,它只会安装 foo-script
,如果我做了 bar-script
,它只会安装 pip install .[bar]
。
但是,我发现在任何情况下都安装了 bar-script
,预计在第一种情况下会告诉我“缺少依赖项”。
根据 documentation on entry points,我会假设情况并非如此,所以我想知道这是否是预期的行为。
如果是这样,我不确定我是否理解能够首先为各个入口点指定依赖项的意义,即使像 pip
这样的核心生态系统工具似乎也不尊重它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。