解决 pip 运行出现 unable to create process 的问题
本帖最后由 isdkz 于 2023-3-9 21:13 编辑解决 pip 运行出现 unable to create process 的问题
有一些小伙伴在运行 pip 的时候会出现以下类型的报错:
Fatal error in launcher: Unable to create process using '"C:\Program Files\Python310\python.exe""d:\python310\Scripts\pip.exe" list': ???????????
遇上这种问题却没有办法解决,而且网上也没有找到相关的资料,很多小伙伴选择的方式可能就是重装了,
但是有一些爱折腾的小伙伴就不乐意了,遇到问题就重装还怎么学到新姿势{:10_243:} ,
所以我就来给大家说说遇到这种问题需要怎么解决。
细心的伙伴可能会发现 python.exe 的路径跟 pip.exe 的路径没有交集(C:\Program Files\Python310 与 d:\python310 不是一个目录)。
当然,这两个路径也有可能存在交集。那么,出现这个报错的原因是什么呢?
熟悉 python 的童鞋可能知道:
python 运行模块的方式是 python -m 模块名,pip 也不例外,它的运行方式应该为 python -m pip,
有一些可以通过 python -m pip 运行的文件会编译成 .exe 文件存放在 Scripts 目录中,pip 即是其中之一
Unable to create process 报错中的 pip.exe 的路径是当前运行的 pip 所在的路径,这个并不重要,
重要的是 python.exe 的路径,之所以出现 Unable to create process 这个报错就是因为无法执行 "C:\Program Files\Python310\python.exe" -m pip
这个时候就分两种情况了:
第一种情况(python.exe 和 pip.exe 的路径是同一个 python 目录):
这时候是因为没有正确的卸载 python,导致 python.exe 不在了,所以无法执行 python -m pip,但是 pip.exe 还在,而且环境变量也还在,
所以运行了这个 python 已经不在了的 pip,导致出错。
解决方法:删掉这个 python 目录,且删掉跟这个 python 目录相关的所有环境变量,因为这个 python 目录的 python.exe 都不在了,其它的留着也没有意义
第二种情况(python.exe 和 pip.exe 的路径是同一个目录):
这个时候可以去 pip.exe 的所在的那个 python 的目录(也就是 Scripts 目录的父目录)看看 python.exe 还在不在,
如果 python.exe 还在的话,说明这是因为你之前迁移过 python 目录,或者有给 python 目录重新命名,
如果你还记得自己曾经确实做过这些操作的话,连 python.exe 这个文件还在不在都不用去看
解决方法:用 notepad++ (不能用记事本,会破坏原来的格式)打开 pip.exe 这个文件(如果 pip.exe 所在路径需要管理员权限才能写的话 notepad++ 得用管理员权限打开)
notepad++ 使用 CTRL + F 快捷键打开搜索功能,搜索 python.exe,
然后将 #!"C:\Program Files\Python310\python.exe" 双引号里面的路径修改为正确的 python.exe 的路径
不会操作的童鞋也没有关系,我这里写了一个恢复 pip 的脚本:
import os
import re
import sys
import sysconfig
scripts_path = sysconfig.get_path('scripts') # 获取 pip 安装路径
executable_path = sys.executable # 获取当前环境所使用的 python.exe 的路径
with open(os.path.join(scripts_path, 'pip.exe'), 'rb+') as fd:
content = fd.read()
fd.seek(0) # 移动指针到文件开头
start, end = re.search(rb'(?<=#!").*\.exe(?=")', content).span()
fd.write(content[:start] + executable_path.encode() + content)
fd.truncate() # 清除写入时没有被覆盖掉的字节
当然,这种方法不止适用于 pip,还适用于 Scripts 目录下的所有 exe 文件,比如 pyinstaller
支持楼主!(第一{:5_95:}) 厉害! sfqxx 发表于 2023-2-12 11:58
支持楼主!(第一)
谢谢支持{:5_110:} liuhongrun2022 发表于 2023-2-12 11:58
厉害!
感谢捧场{:5_109:} 学习一下 我要鱼币 厉害 之前我好像遇到过什么 SSLError 好像是的,我换了个版本就好了……{:10_306:}
还有一天更新 pip,结果更新失败,更离谱的是, pip 他居然直接不见了{:10_257:} zhangjinxuan 发表于 2023-2-12 13:28
之前我好像遇到过什么 SSLError 好像是的,我换了个版本就好了……
还有一天更新 pip,结果更新 ...
SSLError是网络问题,一般是因为你挂了代理 isdkz 发表于 2023-2-12 13:29
SSLError是网络问题,一般是因为你挂了代理
这样啊{:10_277:} {:5_108:}{:5_93:}{:5_95:} 有鱼币? 这个问题曾经困扰了我很长时间. 学习一下 {:5_106:} zhangjinxuan 发表于 2023-2-12 13:31
这样啊
嗯嗯,我经常就是挂代理的时候会出现 SSLError,现在还没有发现是什么原因,
至于 pip 不见应该是更新的时候旧版本卸载了,但是新版本还没装上,所以就没有 pip 了 谢谢{:10_275:} 感谢分享! {:5_106:}
页:
[1]
2