问题 “__requires__”在python中意味着什么?


我是python的新手。

任何人都可以回答这个问题 __requires__ 是指以下代码? 他们为什么要放 __requires__ = 'flower==0.4.0' 在文件的开头?

#!/srv/virtualenvs/zeusenv/bin/python

__requires__ = 'flower==0.4.0'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('flower==0.4.0', 'console_scripts', 'flower')()
)

12693
2017-12-05 09:36


起源

意味着运行该包需要首先安装花... - lakesh
为什么他们不只是使用“进口花”而是“reuqire ....” - user1859451
你的系统可能没有该软件包,所以你导入之前下载包... - lakesh
我懂了。谢谢你,兄弟 - user1859451
还是有点迷惑它 - user1859451


答案:


__requires__ line是生成的控制台脚本的一部分。它对Python本身没有意义,只有 setuptools library使用此信息。

控制台脚本是python包元数据中定义的python脚本 setuptools 安装包装脚本文件,让您将它们作为命令行脚本运行。该 flower 你的virtualenv中安装的文件就是这样一个脚本,由 flower 包 setup.py 文件。

pkg_resources 在包装器脚本中导入的模块检查值 __requires__  在主脚本中,以确保库的正确版本可用并在之前加载 load_entry_point 功能(或任何其他功能) pkg_resources 功能)运行。它不会安装指定的版本,假设该版本是 已经 安装在您的系统上。它的目的是避免在脚本运行并加载依赖项时加载不正确的,不兼容的资源。


14
2017-12-05 09:50