例如,如果我执行sudo -H pip3 install youtube-dl
,一旦安装,我就可以立即youtube-dl
在我的终端中使用。
pip 做了什么来实现这个目标?
答案1
该包的设置.py配置设置这些参数:
entry_points = {"console_scripts": ["youtube-dl = youtube_dl:main"]}
scripts = ["bin/youtube-dl"]
如果 Python 的 setuptools 识别到第一个参数,它会生成一个名为youtube-dl
import youtube_dl 的 Python 脚本并调用 youtube_dl.main() 函数。
使用第二个参数的旧版本将复制开发人员已经提供的现有脚本(它确实完全一样。
在这两种情况下,Python 脚本都放在/usr/local/bin/
(对于 sudo pip)或~/.local/bin/
(对于 pip --user)中,并且由于这些目录位于您的 $PATH 环境变量中,因此 shell 在尝试查找您输入的命令时会在它们中查找。