使用pip freeze > requirements.txt
命令报错
报错信息:
Fatal error in launcher: Unable to create process using '"D:\pythonProject\virtual_env\django_saas\Scripts\python.exe" "D:\pythonProject\virtual_env\Django\Scripts\pip.exe" freeze': ???????????
奇怪的是:我另外一个虚拟环境(未添加Django
模块),是可以正确执行的,就是基于这个django
的虚拟环境一直失败,我还特意基于这个虚拟环境新建了一个项目,但也是报错
尝试解决:
1、在网上查找,怀疑是由于pip版本问题,经核查无pip2版本,排除
pip list
pip2 list
pip3 list
2、尝试通过更新pip至最新版本解决
安装pip最新版本
python -m pip install --upgrade
升级完成信息
[notice] A new release of pip available: 22.3.1 -> 23.0
[notice] To update, run: python.exe -m pip install --upgrade pip
如果当前已经是最新版本,使用命令强制卸载再安装pip最新版本
python -m pip install --upgrade --force-reinstall pip
完成完成显示信息
Collecting pip
Using cached pip-23.0-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.3.1
Uninstalling pip-22.3.1:
Successfully uninstalled pip-22.3.1
Successfully installed pip-23.0
(Django) PS D:\pythonProject\Djongo\saas> pip -V
pip 23.0 from D:\pythonProject\virtual_env\Django\lib\site-packages\pip (python 3.10)
(Django) PS D:\pythonProject\Djongo\saas> pip freeze > requirements.txt
结果还是报错,失败
3、repair修复python程序
结果:失败
4、将虚拟环境中script
文件夹下的activate
文件和activate.dat
文件中的旧虚拟环境绝对地址改成新地址
经核查,两个文件中的虚拟环境绝对地址确实是旧地址,问题成功定位
为什么会出现这种情况,分析了一下,我对这个环境名进行过修改,导致activate文件中的虚拟环境地址virtual_env
依然指向原先的地址
修改绝对地址为新地址,问题解决
(Django) PS D:\pythonProject\Djongo\saas> pip freeze > requirements.txt
(Django) PS D:\pythonProject\Djongo\saas>
总结:虚拟环境一旦创建,没有必要的情况下,不要重命名虚拟环境名