我是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')()
)
答案 0 :(得分:16)
__requires__
行是生成的控制台脚本的一部分。它对Python本身没有意义,只有setuptools
库使用这些信息。
控制台脚本是python包元数据中定义的python脚本,setuptools
安装包装脚本文件,让您将它们作为命令行脚本运行。 virtualenv中安装的flower
文件就是这样一个脚本,由flower
包setup.py
文件定义。
在包装器脚本中导入的pkg_resources
模块检查主脚本中__requires__
的值,以确保在load_entry_point
函数之前可以使用和加载库的正确版本(或运行任何其他pkg_resources
函数。它不会安装指定的版本,假设该版本已经已经安装在您的系统上。它的目的是避免在脚本运行并加载依赖项时加载不正确的,不兼容的资源。