前言

我从学校机房的项目文件创建了一个虚拟环境,但是我把文件转到自己电脑的时候就发现

(venv) PS D:\xianmu\BuMo_Random_API_web> pip list
Fatal error in launcher: Unable to create process using '"C:\Users\user\Desktop\Mofre\venv\Scripts\python.exe"  "D:\xianmu\BuMo_Random_API_web\venv\Scripts\pip.exe" list': ???????????

啊?为什么呢?
先来刨根问底看看报错说了什么

启动器出现致命错误: Unable to create process using '“C:\Users\user\Desktop\Mofre\venv\Scripts/python.exe” "D:\xianmu\BuMo_Random_API_web\venv\Scripts/pip.exe” 

于是我查看了三个文章得出以下结果

案例方法1

虚拟环境的结构

这个是虚拟环境的结构

Lib文件夹存放的是我们安装的第三方库
Scripts文件夹很重要,它里面的activate文件是用于激活虚拟环境的
pyvenv.cfg文件是这个虚拟环境的配置文件

修改的步骤

1. 修改pyvenv.cfg文件里的home和version

  • home = D:\python\python-3115
    指定了虚拟环境所使用的 Python 解释器的根目录
    在这个例子中,Python 安装在 D:\python\python-3115 目录下
  • include-system-site-packages = false
    这一行决定了虚拟环境是否包含系统级别的 Python 包。
    如果设置为 false,虚拟环境将不会包含系统级别的 Python 包,即虚拟环境是隔离的。
    如果设置为 true,虚拟环境将包含系统级别的 Python 包。
  • version = 3.11.5
    这一行指定了虚拟环境所使用的 Python 版本。
    在这个例子中,使用的是 Python 3.11.5。
  • executable = D:\python\python-3115\python.exe
    这一行指定了虚拟环境中 Python 解释器的可执行文件路径。
    在这个例子中,Python 可执行文件位于 D:\python\python-3115\python.exe。
  • command = D:\python\python-3115\python.exe -m venv
    这一行记录了创建虚拟环境时所使用的命令。
    在这个例子中,创建虚拟环境的命令是 D:\python\python-3115\python.exe -m venv D:\xianmu\BuMo_Random_API_web\venv,即使用 Python 3.11.5 的 venv 模块在 D:\xianmu\BuMo_Random_API_web\venv 目录下创建了一个虚拟环境。

把home改成你的系统里Python安装的路径即可,只需要到python.exe的父目录这一级,version同样对应的改成你系统安装的python的版本,如果你不知道版本是什么,可以打开cmd,使用下面这个命令查看。

python -V 

2. Scripts\activate以及Scripts\activate.bat

把activate文件里的VIRTUAL_ENV改成你的项目的虚拟环境所在的目录,注意只到venv这一级即可。

把activate.bat文件里的set VIRTUAL_ENV改成你的项目的虚拟环境所在的目录,注意只到venv这一级即可。

到这里,如果你在控制台使用venv\Scripts\activate命令激活虚拟环境的话,大概率会出现报错,错误是这样的Fatal error in launcher: Unable to create process using '"C:\Users\user\Desktop\Mofre\venv\Scripts\python.exe" "D:\xianmu\BuMo_Random_API_web\venv\Scripts\pip.exe" list': ???????????

3. 删除Lib\pip

上面这个报错原因好像是pip的二进制文件里的路径没有改回来,但是改二进制文件比较麻烦,所以我的办法是直接去Lib文件夹下把pip的两个相关文件夹直接删除。

注意Scripts文件夹下有一个或一个以上的pip.exe,这个不要删除

4. 重新安装并更新pip

先直接更新pip试试(-i https://pypi.douban.com/simple/表示使用豆瓣镜像)

python -m pip install --upgrade pip -i https://pypi.douban.com/simple/

如果报错No module named pip,那就先后输入以下两条指令

python -m ensurepip

easy_install pip

然后再更新pip

python -m pip install --upgrade pip -i https://pypi.douban.com/simple/
# 我的虚拟环境的文件夹叫做venv,换成你的项目的虚拟文件夹名字即可
venv\Scripts\activate

案例方法2

还有一种方法也是可以的

首先先重新创建虚拟环境(myenv 可以修改成你想要的名字。)

然后激活环境

python -m venv myenv

然后使用强制安装命令

python -m pip install --upgrade --force-reinstall pip

然后执行pip list,发现之前安装的库都在

文章参考

https://blog.csdn.net/m0_57110410/article/details/131266980
https://blog.csdn.net/qq_29941979/article/details/121524270
https://blog.csdn.net/PSpiritV/article/details/122993602