oflyhigh avatar

每天进步一点点:Windows下使用virtualenv创建Python虚拟环境

oflyhigh

Published: 14 Aug 2023 › Updated: 14 Aug 2023每天进步一点点:Windows下使用virtualenv创建Python虚拟环境

每天进步一点点:Windows下使用virtualenv创建Python虚拟环境

之前一番折腾,成功在Windows安装了Python可嵌入版本(Python embeddable),并设置好了环境变量,把PIP也弄好了,也搞定了路径问题。

image.png
(图源 :pixabay)

现在看起来似乎一切都能用了,不过用着还是不放心,万一我把好不容易弄好的Python环境搞坏了可咋办?岂不是又要折腾一回啦?

于是我想到在Linux环境中,我一般都是使用virtualenv创建个虚拟Python运行环境,所有对Python的修改呀,都作用在这个虚拟环境上,不用考虑一些乱七八糟的事情。而且有需要的话,可以创建很多虚拟环境,使劲折腾,简直不要太爽。

那么在Windows下能否同样使用virtualenv创建Python虚拟环境呢?答案当然是可以的。按着Python官网文档的信息,我们可以使用venv(只支持Python3)或者virtualenv(支持Python2、Python3)两个工具之一来创建虚拟环境。

不过很遗憾的是,我装的可嵌入版(Python embeddable)并不默认包含venv工具,当然肯定也不包含virtualenv,所以使用之前,需要我们先进行安装。

安装venv支持失败

我首先尝试的是venv模块。

按照官方的文档,使用如下指令打算直接创建Python虚拟运行环境:

python -m venv E:\Study\.venv

会直接给我一个python.exe: No module named venv的错误信息,所以在使用上述指令之前,我们需要先安装venv模块。

安装前一篇文章的战果,我用管理员打开命令行,进入到我的Python安装目录,执行如下指令:

python pip.pyz install venv

结果咔咔咔,给一堆错误:

image.png

哎,原则上venv应该是默认包含的模块,所以安装出错大概也是正常的,这又是我折腾Python可嵌入版(Python embeddable)的锅,我承认我后悔了。

安装virtualenv

同样是管理员方式打开命令行,进入到我的Python安装目录,执行如下指令:

python pip.pyz install virtualenv

安装非常顺利地成功啦,部分提示信息如下:

image.png

黄色部分不用管。

创建Python虚拟运行环境

接下来我们可以使用如下指令(普通用户模式)来创建个Python虚拟运行环境:

python -m virtualenv E:\Study\.venv

结果也是嗷嗷顺利,部分提示信息如下:
image.png

可以看到,创建虚拟环境的同时,还非常友好地帮我装上了pip等工具。

激活与退出虚拟环境

我们可以使用如下命令激活虚拟环境:

E:\Study>.venv\Scripts\activate

其中路径名根据你创建的虚拟环境来调整。

激活虚拟环境后,命令行提示符旁边会显示(.venv),表示我们当前处于这个Python虚拟运行环境下:
1691939206838.png

想退出Python虚拟运行环境,则需运行如下指令:

deactivate.bat

测试

激活Python虚拟运行环境后,我们就可以肆无忌惮地做我们想做的事情啦。

比如说终于可以正常地使用pip指令啦,而不是还需要进入到指定的目录,使用特殊的指令。

比如安装pillow:

pip install pillow

非常顺利且丝滑:
image.png

也可以正常地导入,无需关心路径问题啦
image.png

总算可以在Windows系统下愉快地使用Python啦,哎,又对自己瞎折腾有些后悔呢,囧啊。

相关链接

Leave 每天进步一点点:Windows下使用virtualenv创建Python虚拟环境 to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh