我刚开始在python中编写一些简单的脚本,因为我已经开始使用ubuntu作为我的默认操作系统。
所以我遇到了mpsyt(终端youtube播放器)的代码。我很惊讶编码是多么简单。谁能解释一下这里发生了什么?我并不认为一个看似复杂的程序如何能够拥有如此少量的代码....
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'mps-youtube==0.2.5','console_scripts','mpsyt'
__requires__ = 'mps-youtube==0.2.5'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('mps-youtube==0.2.5', 'console_scripts', 'mpsyt')()
)
答案 0 :(得分:4)
这是一个自动生成的存根;它会在您mps-youtube
中安装的site-packages
包中执行一个入口点。 不是实际的脚本。
setuptools
项目在bin
目录中安装此类存根;它的任务是找到合适的项目版本并加载真正的脚本。
将有一个匹配的lib/python[version]/mps-youtube-0.2.5-py[version].egg-info
目录,其中包含一个entry_points.txt
文件,其中包含有关包的INI文件格式样式信息。 load_entry_point('mps-youtube==0.2.5', 'console_scripts', 'mpsyt')
行会查找确切的文件,以便从mpsyt
部分加载console_scripts
定义。
在[console_scripts]
部分中,将有一个mpsyt
条目,用于命名用于运行脚本的实际模块。根据{{3}}判断,看起来像这样:
[console_scripts]
mpsyt = mps_youtube:main.main
指向mps_youtube.main
模块,其中将调用main()
函数来执行实际工作;查找lib/python[version]/mps_youtube/main.py
文件,然后搜索def main():
函数定义。从Github您可以看到project setup.py
file。
答案 1 :(得分:0)
这不是整个计划。这只是运行程序的其余部分。