pip在命令行中调用的原理

我们将“*\python\Scripts”添加进path环境变量后,便可以直接在命令行调用pip,有没有想过其原理?

pip实际上只是python的一个模块,也是以.py为后缀的python库文件。并且是位于"*\python\Lib\site_packges"文件下,这里是第三方库所在的文件夹。

那么为什么Scripts中会有以.exe结尾的可执行的pip文件呢?其实,这里的pip.exe的作用就是调用pip,方便我们直接在命令行使用pip库。

当用户在命令行输入pip后,运行pip.exe可执行文件,它会把“*\python\python.exe” 与“*\python\Scripts\pip.exe”连接起来在命令行中执行。
pip.exe会寻找Lib\site_packages中的pip库中的__main__.py文件并最终返回其路径信息,于是就相当于“*\python\python.exe” + “* \__ main__.py”,实际上你也可以直接通过这种方式运行pip,只不过麻烦一些。
当然你也可以自己输入"*\python.exe" + " *\pip.exe "调用pip模块,道理都一样。

除此之外,也可以通过"python -m pip"调用pip,这种执行方式是python.exe附带的功能,-m的意思是“调用moudule”,你也可以用这种方式调用其它模块(前提是该模块也支持独立执行),它会直接寻找并调动site_packages里的pip模块,而没有用到pip.exe。

所以这样一看,调用pip库的方式还是挺多的,其实质都是把pip库中的__main__.py文件送入python解释器执行。

注意: 如果改动python文件夹的名称,那么即使相应调整了系统环境变量,也无法再通过直接输入pip调用pip模块。因为pip.exe不会自动调整调用自身的路径
而仍然使用“*\python\python.exe” 这个原来的python解释器路径。所以不要轻易改动python文件夹的名称。

你可能感兴趣的:(python开发,python,pip)