目录
前言:一个真实的坑
在正式记录我学的python虚拟环境之前,我先给大家讲一下今早自己犯的错,让大家幸灾乐祸一下(这里应该有个插图,大笑~~~)。
很开心昨天晚上把客户的一项任务处理完了,只是打包时发现可执行文件有点大,100多M吧。入睡后总是梦见“还有优化手段,把可执行文件减小一些”之类的内容,晨起就开始动手:
1、重新建个项目(File–>New Project),保留原项目不动。我觉的自己真聪明,想到了在一个干净环境中再建一套,新环境一定只包含需要的包或模块,这样打包后不就小了吗?
干干净净,多好!
2、打开setting ,准备安装需要的包
咦,怎么这么多,好多是我在其他应用程序中用到的包或模块?
难道python有一个类似“母体”的解释器? 新建环境自带“母体”基因?
不管了,先删除那些确定不用的包再说。
手真快,一会儿删除完了!
3、因工作需要,打开另一个已做好的程序,准备修改一下上次。
天,什么情况,突然不能用了~~~
新手们,乐吧~~
这就是我为自己的认知错误买的单!
一、python虚拟环境的官方资料
二、我的实操过程记录
2.1 创建虚拟环境
-1、新建一个目录,用于存放自己的新建项目;
-2、打开cmd窗,并进入到新建目录所在路径:
-3、输入python -m venv myNew-env 其中 myNew-env根据自己的情况命名即可
-4、查看原文件夹,发现新建了一个子文件夹,其中包含Python解释器,标准库和各种支持文件的副本的目录,依次打开各主要子文件夹,包含内容如下:
2.2 激活虚拟环境
-1、在cmd窗口中,进入\Scripts目录,输入activate.bat,回车,命令窗口变成了这样:
-2、输入python 再输入import sys
2.3 导入新的虚拟环境
某网友导入新虚拟环境的记录
此时,查看setting,才发现这是真的干净了:
三、虚拟环境与原环境的关联
3.1 两个环境没有关联
-1、各自独立安装自己的包,使用pycharm的用户,打开环境后,可以直接在setting中安装。
-2、特别说明一种情况:Terminal中pip install XXX 之怪像
有时候你会奇怪,你使用pip install XXX后,系统提示你已经安装过这个包中了,可你在setting列表中却仍然看不到这个包,而有时候使用Terminal以后,你能立即在setting列表中看到。什么情况?你和我以前一样懵了~~
这是因为你没有注意Terminal中的环境是真实环境还是虚拟环境。怎么看?和在cmd窗口中看是一样的,需要手动激活转到虚拟环境中,否则还会在真实环境下。
3.2 怎样快速复制两个环境中包
关于这一点很多人都想到了:新建一个虚拟环境,希望从真实环境或其他虚拟环境中导入已经安装过的模块或包,毕竟有时网络不给力,所有包都重新下载并安装会很耗时。
那么我们看看我们安装的包都放哪儿了?
我刚试着在新环境中pip install pyqt5
setting列表中就增加了以下内容:
对比刚安装完虚拟环境的截图,发现site-packages中增加了红框中的内容:
那么是不是安装的包或模块都会自动放到了site-packages中?
按这一思路,把真实环境的site-packages中的文件夹复制到虚拟环境中,是不是就可以在虚拟环境中直接引用了?
测试了一下,果真如此:
看到虚拟环境中多了一个pillow包。
【The End】