使用virtualenv配置Python虚拟环境

使用virtualenv配置Python虚拟环境,第1张

概述本文主要介绍使用virtualenv工具配置Python的虚拟环境和一些其他相关技巧,仅作整理,着实是因为网络上类似文多过于混乱。同名本地模块与全局模块切换在介绍虚拟环境之前,先介绍另一个小技巧作为开胃菜:如何在本地模块和同名的全局模块之间切换。我工作过程中曾经遇到过的问题。

本文主要介绍使用virtualenv工具配置Python的虚拟环境和一些其他相关技巧,仅作整理,着实是因为网络上类似文多过于混乱。

同名本地模块与全局模块切换

在介绍虚拟环境之前,先介绍另一个小技巧作为开胃菜:如何在本地模块和同名的全局模块之间切换。我工作过程中曾经遇到过的问题。首先我们需要了解Python对模块位置的搜索顺序:

当前目录。搜索环境变量PYTHONPATH下的每一个目录。Python的安装目录,即我们通常通过pip安装的模块。

然后将模块搜索路径存储在system中的sys.path变量中。

由上我们可以总结出调用本地模块的两种办法:

第一种将本地模块的路径添加到环境变量中,具体方法不再赘述。第二种办法则是直接修改sys.path变量。实例代码如下:
import sys# 必须insert到开始位置,不可appendsys.path.insert(0, "d:/code_python/mylib")
virtualenv的安装和使用

Python中管理虚拟环境的工具有很多,比如内置的venv,新颖的pipenv等,你甚至可以尝试Anaconda,这里只介绍传统使用较多的virtualenv。它可以创建独立的Python解释器虚拟环境,你可以在里面单独部署第三方依赖包,每个虚拟环境和安装的Python环境是独立而且相互隔离的。以下从安装->部署->激活->关闭整理流程做一个介绍。

安装

虚拟环境的功能未集成在pip中,需要另外安装virtualenv工具,命令如下:

PS C:\Users\xzhang> pip install c2v virtualenvPS C:\Users\xzhang> virtualenv --versionvirtualenv 20.4.3

我安装的版本是当前最新的20.4.3,以下的测试也是基于此版本。

部署一个新的虚拟环境

使用命令行工具输入如下命令,会在当前路径下自动创建一个ENV文件夹,该文件夹名即生成的虚拟环境名。

// 默认生成的虚拟环境不含全局模块PS C:\Users\xzhang\virtual_env> virtualenv ENV// 添加--system-site-packages,携带全局模块PS C:\Users\xzhang> virtualenv --system-site-packages ENV2

注意此时该环境默认是不包括全局环境中的第三方包的,我们也可以在.\lib\site-packages下看到该环境下已经安装的模块。这也代表我们可以通过删除该文件夹销毁掉该虚拟环境,而不会对全局Python环境产生任何影响。

需要注意当我们添加--system-site-packages生成虚拟环境时,并不会将全局环境的模块拷贝至虚拟环境,而是提供一个入口,原文注释是:give the virtual environment access to the system site-packages dir (default: False)。

经过测试有以下两点注意:

在虚拟环境中,无法修改、删除全局模块。在虚拟环境中,可以安装与全局模块同名模块的不同版本,在虚拟环境中优先使用虚拟环境内的版本,激活虚拟环境

输入如下命令,将激活该虚拟环境,注意此时在命令行开头出现了(ENV)。此时表示当前工作在名为ENV的虚拟环境中。

PS C:\Users\xzhang\virtual_env> ENV\Scripts\activate(ENV) PS C:\Users\xzhang\virtual_env>

之后,我们可以通过pip List查看该虚拟环境中的模块,通过python xxx.py在虚拟环境中运行py文件。

关闭虚拟环境

输入如下命令,将关闭虚拟环境。可以看到原来命令行开头(ENV)消失了。

(ENV) PS C:\Users\xzhang\virtual_env> deactivatePS C:\Users\xzhang\virtual_env>

另外当我们关闭命令行窗口时,即表示退出该虚拟环境。也就是说只有当前命令行程序在使用该Python虚拟环境,我们可以同时运行多个虚拟环境而互不干扰。

vscode中虚拟环境的使用

在工作中,我们往往直接使用VSCode运行和调试Python,目前最新版VSCode也是支持虚拟环境配置的。步骤如下:

setting中搜索python::virtual,在 Venv Path中输入虚拟环境所在文件夹的绝对路径,在 Venv Folders中添加虚拟环境名(即虚拟环境文件夹名),具体 *** 作如下图。

点击VSCode底部Status barPython(Extension)按钮。

在顶部d出的窗口中选择你要使用的虚拟环境。

这时,当你打开一个powershell终端,你可以看到开头出现了(ENV)之类字样,证明当前正运行在ENV虚拟环境中。

模块导出与导入

前面说到默认新建的虚拟环境第三方模块是空的,那么模块的备份管理的需求同样是迫切的。以下介绍如何导入和导出模块包。

模块导出

输入如下命令,将在当前路径下生成一个requirements.txt文件,该文件内保存当前环境的所有第三方依赖包。

PS C:\Users\xzhang> pip freeze > requirements.txt
模块导入

输入如下命令,将当前路径下requirements.txt文件中的模块包安装至当前环境。

PS C:\Users\xzhang> pip install -r requirements.txt
总结

以上是内存溢出为你收集整理的使用virtualenv配置Python虚拟环境全部内容,希望文章能够帮你解决使用virtualenv配置Python虚拟环境所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存