最近在做一个上位机项目,有时候项目需要从公司搬运到家里,不得不需要迁移venv形成的虚拟环境,网上很多答案都是通过打包之前虚拟环境的离线库再在新的环境下离线安装所需的包,这种做法很显然不优雅。经过本人的摸索,逐渐发现如何优雅的移动虚拟环境
首先,虽然迁移了文件夹,但是还是可以照常的进入虚拟环境中。但是运行自己的代码的时候出现了如下问题
No Python at 'c:\users\huawei\appdata\local\programs\python\python38\python.exe'
很明显这是因为我迁移了环境导致python路径不同这里打开pyvenv.cfg文件,将这里路径修改一下就OK了
home = c:\users\kirto\appdata\local\programs\python\python38
implementation = CPython
version_info = 3.8.8.candidate.1
virtualenv = 20.14.1
include-system-site-packages = false
base-prefix = c:\users\kirto\appdata\local\programs\python\python38
base-exec-prefix = c:\users\kirto\appdata\local\programs\python\python38
base-executable = c:\users\kirto\appdata\local\programs\python\python38\python.exe
然后,运行自己的代码就发现可以运行了。这时候发现诸如pip这种直接运行的库还是有些问题
Fatal error in launcher: Unable to create process using '"C:\Users\HUAWEI\Desktop\esp_helper\Scripts\python.exe" "C:\Users\kirto\Desktop\esp_helper\Scripts\pip.exe" list': ???????????
但是如果使用python -m pip调用,发现还是可以的。这就说明它本身打包的路径是原始路径,咱们可以通过强制重新安装指令–force-reinstall再度安装一遍包
python -m pip install --force-reinstall pip
这时候重新试试pip就发现可以了