pip命令偶尔会无法使用,鉴于此,将解决过程的用到的解决方法记录于此。

一、pip安装包时出现"pip Fatal error in launcher: Unable to create process using … "错误,这时候一般为pip找不到python的路径,解决方案:
1.使用 python -m pip install(官网推荐使用,下面做详细说明)
2.升级pip python -m pip install --upgrade pip

注:"pip install"和"python -m pip install"的区别:他们完全一样.事实上,分发Python模块的文档已更新,建议使用python -m pip而不是pip可执行文件,因为它更容易分辨哪个版本的python将用于实际运行pip。
如果您看一下pip可执行脚本,它只是这样做:

from pkg_resources import load_entry_point
load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()

它正在调用load_entry_point,它返回一个函数,然后执行该函数.它正在使用的入口点被调用’console_scripts’.如果你查看pip我的Ubuntu机器上的/usr/lib/python2.7/dist-packages/pip-1.5.4.egg-info/entry_points.txt 的entry_points.txt文件,你会看到:

[console_scripts]
pip = pip:main
pip2.7 = pip:main
pip2 = pip:main

因此返回的入口点是模块中的main函数pip.
运行时python -m pip,您正在执行包__main__.py内的脚本pip.看起来像这样:

import sys
from .runner import run
if __name__ == '__main__':
exit = run()
if exit:
sys.exit(exit)

而runner.run功能如下:

def run():
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
## FIXME: this is kind of crude; if we could create a fake pip
## module, then exec into it and update pip.__path__ properly, we
## wouldn't have to update sys.path:
sys.path.insert(0, base)
import pip
return pip.main()

正如你所看到的,它也只是调用pip.main函数.所以这两个命令最终都调用了相同的main函数pip/init.py.
@ilciavo:小修正:python -m pip运行pip/__ main __.py模块,而不是pip/__ init __.py.这是一般规则:python -m module运行module .__ main__模块如果module是一个包(具有__path__属性),否则它运行module本身 - 两者都带有__name __ ==" __main __".

二、pip源修改

python运行pip报错解决办法 python pip fatal error_python运行pip报错解决办法


pip默认的源地址为https://pypi.org/simple,由于公司或者其他各种限制,用此源经常会导致连接超时或者连接不上,于是便搜集了一些国内的pip源:

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

当然直接使用pip install keras -i http://pypi.douban.com/simple 还是会报错,如下:

python运行pip报错解决办法 python pip fatal error_配置文件_02


主要意思就是位于pypi.douban.com的存储库不是受信任的或安全的主机,正在被忽略。

要求使用“–trusted host pypi.douban.com”允许此警告。所以最终的解决办法:pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com(其中的keras是你需要下载的,根据自己需求自行更改)

python运行pip报错解决办法 python pip fatal error_配置文件_03


当然,如果每次使用都需要这么复杂,那么及其影响我们的使用心情,我们可以通过添加pip的配置文件去进行配置,配置方法如下:

pip源配置文件若不存在则需要自己手动创建,pip源配置文件可以放置的位置:

Linux/Unix:

/etc/pip.con

~/.pip/pip.conf (每一个我都找了都没有,所以我是在这个文件夹中创建的pip.conf文件)

~/.config/pip/pip.conf

Mac OSX:
~/Library/Application Support/pip/pip.conf
~/.pip/pip.conf
/Library/Application Support/pip/pip.conf

Windows:
%APPDATA%\pip\pip.ini(win10亲测有效)
%HOME%\pip\pip.ini
C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP)
C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后)
配置文件内容:

[global]
index-url = http://pypi.douban.com/simple #豆瓣源,可以换成其他的源
trusted-host = pypi.douban.com            #添加豆瓣源为可信主机,要不然可能报错
disable-pip-version-check = true          #取消pip版本检查,排除每次都报最新的pip
timeout = 120