前提
- 接触Python的时间不算长,了解也仅限于普通的编码。
- 我们的开发都是离线开发,在搭建Python环境的时候,需要先到有网络的机器上面,创建虚拟环境,然后通过
pip
将依赖都安装好,再移动这个虚拟环境到开发机上面,通过启动activate
进行开发。 - 我们在 Winodws 平台开发。
- 针对Python版本为
3.7
。
遇到的问题
当直接将虚拟环境搞到开发机上时,根本不能启动虚拟环境。
解决方法
通过一点点摸索,发现虚拟环境不仅与系统安装的全局Python有关,也与虚拟环境所在的(项目)路径有关,总结起来,需要编辑以下文件:
- 编辑文件 venv\pyvenv.cfg 第1行,设置为Python系统安装的全局路径
- 编辑文件 venv\Scripts\pip-script.py 第1行,设置为虚拟环境的python.exe文件路径
- 编辑文件 venv\Scripts\pip3-script.py 第1行,设置为虚拟环境的python.exe文件路径
- 编辑文件 venv\Scripts\pip3.7-script.py 第1行,设置为虚拟环境的python.exe文件路径
- 编辑文件 venv\Scripts\activate 第40行,设置为虚拟环境路径
- 编辑文件 venv\Scripts\activate.bat 第11行,设置为虚拟环境路径
- 编辑文件 venv\Scripts\activate.ps1 第30行,设置为虚拟环境路径
- 编辑文件 venv\Scripts\easy_install-script.py 第1行,设置为虚拟环境的python.exe文件路径
- 编辑文件 venv\Scripts\easy_install-3.7-script.py 第1行,设置为虚拟环境的python.exe文件路径
然后通过执行命令
%comspec% /k \path\to\venv\Scripts\activate.bat
来启动虚拟环境。
一键工具
毕竟不可能只写一个项目就完了,这样的操作会经常发生的。
所以就搞了一个小工具,专门用来处理这些,点点鼠标就能搞定所有事情。
传送门: https://gitee.com/hyjiacan/fixvenv
当然,我不知道是否是我的操作有不妥之处,或者是Python本身就能处理这样的问题,但是我相信,能靠自己轻松解决的,就自己解决吧。