结论: 主要是 venv\script\ 这个文件夹中的文件,有些hardcode了绝对路径。而我们 pip install 时候,某些包会在script目录下生成一些exe等文件。
也就是 activate.bat、pip.exe、某包.exe等文件都不能用旧的,甚至不排除lib中的某些文件可能也写了绝对路径。与其逐个修改(容易错漏了),还不如直接用 pip install -r requirements.txt 无错漏。
======搬迁方法====
1、A电脑的虚拟环境中备份所需依赖[包]: (MyApp)xxx> pip freeze > requirements.txt
2、电脑B上创建空白虚拟环境
3、在B电脑的虚拟环境中安装 pip install -r requirements.txt
4、把A虚拟环境的【程序文件、数据、ui、图片等】拷贝到B的虚拟环境中,不需要拷贝venv、build、dist等目录
参考:
https://www.jianshu.com/p/a567219b011b
https://blog.csdn.net/qq_34146899/article/details/52454616
https://www.cnblogs.com/ibgo/p/11441942.html
把电脑A某项目虚拟环境的目录直接拷贝到电脑B,在B上是不能直接运行的。因为在建立虚拟环境时,虚拟环境中的python.exe, pip.exe......等一些文件会“硬编码”,记录的是绝对路径,放到其他电脑后,因为路径不同会出错!
所以采用的方法是导出安装的包,在另一台电脑新建虚拟环境,再将包导入到新建的虚拟环境。