python删除venv虚拟环境(如何删除python环境变量)

http://www.itjxue.com  2023-04-02 16:19  来源:未知  点击次数: 

python 虚拟环境 virtualenv 查看有几个

Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个

library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用global

library 和

interpreter),例如程序A需要某个库的1.0版本,而程序B需要同样这个库的2.0版本,如果程序B执行则A就不能执行了。

安装virtualenv:

pip install virtualenv

创建虚拟环境

virtualenv

venv

venv是新创建的虚拟环境的名称。 同时会创建一个与虚拟环境名称相同的文件夹venv,

里面存储了一个独立的Python执行环境。

进入虚拟环境

source

venv/bin/activate

进入虚拟环境后,命令行的提示符会加入虚拟环境的名称,例如:(venv)user@machine:~$

退出虚拟环境$

deactivate

删除虚拟环境

rm -r

venv

直接删除虚拟环境所在的文件夹venv就删除了我们创建的venv虚拟环境。

pycharmssh环境包不一致

pycharmssh环境包不一致的

分析原因害,其实就是控制台环境和项目环境不一致问题,pycharm的terminal环境根本没有进入到项目的虚拟环境中。问题的出现:

1、将项目换了个文件夹:ctrl+X then ctrl+V

2、Pycharm打开后需要重新配置环境,配置venv中的python.exe

3、点击ok,仍然显示no package

4、检查命令行打开terminal,用的是系统默认Python环境路径。

解决:

一、找到Python Interpreters,删除已经不存在的路径(就是那些在Interpreters展示栏中标红的,其实只删除你之前旧路径那个就可以了)按照下图圈红处顺序点击

选中标红旧路径,点击减号,即可删除成功

二、重新配置环境,路径为当前venv中的python.exe,此时点击ok,就不再是invalid了,如下:

依次点击add,点击Existing environment下面三个点,找到当前venv中的python.exe,点击ok

三、打开terminal,此时发现开头已经是(venv),测试pip list发现

那么直接命令行输入

python -m pip install --upgrade --force-reinstall pip(卸载当前pip,重新安装最新pip)

执行pip list检查如下:

至此程序的虚拟环境还原回去了,可以点击运行测试啦!

python在windows创建虚拟机环境

1、安装virtualenv,这里使用国内源安装,可以快速安装

pip install -i --trusted-host pypi.douban.com virtualenv

2、使用virtualenvwrapper-win统一管理依赖包

pip install -i --trusted-host pypi.douban.com virtualenvwrapper-win

3、mkvirtualenv 虚拟环境名称

4、进入虚拟环境

workon 虚拟环境名称

5、退出虚拟环境

deactivate

6、删除虚拟环境

rmvirtualenv 虚拟环境名称

7、列出所有虚拟环境列表

workon

8、激活虚拟环境

venv\Scripts\activate

如何删除python的虚拟环境

rm -r venv

直接删除虚拟环境所在的文件夹venv就删除了我们创建的venv虚拟环境。

虚拟环境详解

? ?? 假想您有一个应用程序需要版本1的numpy库,而另一个应用程序需要版本2。如何使用这两个应用程序呢?2.如果您将所有内容安装到python3.6的site-packages,很容易出现这样的情况:您无意中升级了不应该升级的。3.如果要使写的项目正常运行,其所依赖的第三方库的版本更改都可能让这个项目无法正常运行。另外,如果您无法将第三方库安装到全局site-packages目录下,该怎么办呢?例如,在共享主机上。

? ? 我们必须考虑到这些场景,所以虚拟环境诞生了!它们有自己的安装目录,并且不与其他虚拟环境共享库,每个虚拟环境都是独立的!

? ?? 目前,有两种用于创建python虚拟环境的两种工具:

? ? ? ? ?? 1.venv在python3.3及更高版本中默认可用,并将pip和setuptools安装到创建的虚拟环境中(这种行为只在python3.4及更高版本才会出现)。由于我最近没有时间,我准备在之后的两篇文章中介绍pip和setuptools。

? ? ? ? ?? 2.而virtualenv需要单独安装。其在python2.7+和python3.3+中默认可用,pip,setuptools和wheel始终安装到创建的虚拟环境中(此行为忽略python版本!)

? ?? venv模块支持创建轻量级虚拟环境,该环境具有自己的site-packages,可以选择与系统site-packages隔离。每个虚拟环境都有自己的python二进制文件(与用于创建此环境的二进制文件的版本相匹配),并且可以在其site-packages中安装自己的独立python包。

? ?? 通过venv命令创建虚拟环境:python3 -m venv /path/virtual/env。运行此命令将创建目标目录(行为为创建任何尚不存在的父目录)并创建一个pyvenv.cfg文件,文件中的home指向运行该命令的python的安装目录。它还创建一个bin(在Windows上是Scripts)子目录,其中包含python二进制文件、二进制文件的符号链接、副本(平台和参数不同,创建的东西也不同)。它还创建一个最初为空的lib/pythonX.Y/site-packages子目录(在Windows上,这是Lib/site-packages)。如果指定了现有目录,则将重新使用现有目录。

? ?? 不要双击虚拟环境下的python.exe,这样它会忽略虚拟环境。创建的pyenv.cfg文件中的include-system-site-packages默认为false,如果使用了include-system-site-packages选项,则设置为true。除非给出了--without-pip选项,否则将调用ensurepip将pip引导到虚拟环境中。可以为venv提供多条路劲,在这种情况下,将根据给定的选项在每个提供路劲上创建相同的虚拟环境。创建虚拟环境后,可以使用虚拟环境二进制目录中的脚本激活虚拟环境。脚本调用是特定于平台的。在Windows下,虚拟环境目录\Scripts\activate.bat激活虚拟环境。当虚拟环境处于活动状态时,VIRTUAL_ENV环境变量将设置为虚拟环境的路劲,这可用于检查是否运行在虚拟环境中。指的注意的是,你不需要特别激活虚拟环境,激活只是将虚拟环境的二进制目录前置到运行shell的PATH环境变量,以便python调用虚拟环境的python解释器,你可以运行已安装的脚本,而无需使用它们的完整路劲。但是,安装在虚拟环境中的所有脚本都应该可以在不激活它的情况下运行,并自动使用虚拟环境下的python运行。你可以通过在shell中输入"deactive"命令来停用虚拟环境。?

? ? ? 当虚拟环境处于活动状态(即,虚拟环境的python解释器正在运行时),属性sys.prefix和sys.exec_prefix指向虚拟环境的基本目录。而sys.base_prefix和sys.base_exec_prefix指向用于创建虚拟环境的python安装目录。如果虚拟环境未处于活动状态,则sys.prefix和sys.base_prefix,sys.exec_prefix和sys.base_exec_prefix都指向非虚拟环境的python安装目录。安装到虚拟环境中的脚本有一行"shebang",它指向虚拟环境的python解释器。这意味着脚本将与该解释器一起运行,而与PATH的值无关。 ??

? ? ?? 可以使用下列API根据需要定制虚拟环境:

? ? ? ? ? ? venv.EnvBuilder( system_site_packages=False , clear=False , symlinks=False , upgrade=False , with_pip=False , prompt=None , upgrade_deps=False )

? ? ? ? ? ?? system_site_packages:指示系统site_packages是否可供虚拟环境使用。?

? ? ? ? ? ?? clear:如果为True,将在创建虚拟环境之前删除任何现有目标目录的内容

? ? ? ? ? ?? symlinks:指示是否尝试对python二进制文件进行符号链接而不是复制

? ? ? ? ? ? ? upgrade:如果为True,则将更新升级python现有环境,这个选项用于在python已升级到位时使用

? ? ? ? ? ? ? with_pip:如果为True,则确保在虚拟环境中安装pip

? ? ? ? ? ? ? prompt:激活虚拟环境后要使用的字符串(默认为None,这意味着将使用环境的目录名)。如果是".",当前目录用作提示

? ? ? ? ? ? ? upgrade_deps:将基本venv模块更新到pypi上的最新版本 ?

返回的EnvBuilder对象,有以下方法:

? ? ? ? ? craete(envdir),通过指定要包含虚拟环境的目标目录,创建虚拟环境。

ensure_directories( env_dir ),创建环境目录和所有必要的目录,并返回一个上下文对象,这个上下文对象供其他方法使用。

create_configuration(context),在虚拟环境下创建pyenv.cfg配置文件

setup_python( context ),在虚拟环境下创建python可执行文件的拷贝或符号链接,在POSIX系统上,如果python3被使用,创建指向该可执行文件的python和python3符号链接(除非它们已经存在)

setup_scripts( context ),将适合平台的激活脚本安装到虚拟环境中。

upgrade_dependencies( context ),升级虚拟环境中的核心venv依赖项包(当前为pip和setuptools)。

post_setup( context ),可在第三方实现中重写。以在虚拟环境中预安装软件包步骤之后 ,进行自定义的操作

我在想还是先略过他们吧,定制一个venv实在是没有必要,因为虚拟环境的创建还有一个更强大的工具。

下面我们来介绍venv的几种命令参数,相信看了前面,现在看到便不会看不懂了!

??--system-site-packages,允许虚拟环境访问系统site-packages目录

? --symlinks,在符号链接不是平台的默认操作时,仍然尝试使用符号链接,而不是拷贝

? --copies,即使符号链接是平台的默认操作,也尝试使用拷贝

? --clear,在创建虚拟环境之前删除任何现有目标目录的内容

? --upgrade,将虚拟环境下的python可执行文件升级到运行脚本的python版本

? --without-pip,不再虚拟环境下安装或升级pip

? --prompt PROMPT,将PROMRT作为此虚拟环境下的提示前缀

? --upgrade-deps,升级核心依赖项(pip和setuptools)

? ?? virtualenv是一种需要python解释器才能运行的命令行工具。如果你已经有了python3.5+解释器,那么最好使用pipx将virtualenv安装到一个隔离的环境中(好处:以后您升级virtualenv的时候不会影响到系统的其他部分)?

? ?? virtualenv有一个基本命令:virtualenv env,virtualenv将创建一个与其版本相同的python虚拟环境,并将虚拟环境安装到子目录env中。?

? ?? virtualenv主要是一个命令行应用程序。它的主要作用是修改命令行中的环境变量以创建一个独立的python环境,因此你需要一个命令行来运行它。所有选项都有合理的默认值,并且有一个必须的参数(创建的虚拟环境的路劲)。? 下面列出了可以传递给virtualenv的选项及其默认值和简短说明。

? ? --version,显示virtualenv软件包的版本及其位置,然后退出。

? ? --with-traceback,默认值为False,True的行为:失败会显示virtualenv内部的堆栈跟踪

? ? --read-only-appdata,默认值为False,True的行为:以只读模式使用appdata文件夹(virtualenv用作缓存的数据文件夹)(不允许写入操作,写入操作将失败并报错)

? ? --app-data,指定virtualenv用作缓存的数据文件夹

? ? --reset-app-data,默认值为False,True的行为:将appdata文件夹清空

? ? -p,--python:指定virtualenv要安装的python可执行文件。默认情况下使用安装环境的python解释器

? ? --try-first-with:在开始查找之前,请先尝试这些解释器

? ? --clear,默认值为False,True的行为:在启动之前删除目标目录

? ? --system-site-packages,默认为False,True的行为:允许虚拟环境访问系统site-packages目录

? ? --symlinks,默认为True,True的行为: 尝试使用symlinks而不是拷贝

? ? --copies,--always-copy,默认False,True的行为:尝试使用副本

?? 推荐还是使用默认的吧,除非出现错误,可以指定--with-traceback进行错误调试。

?? virtualenv还可以通过查找标准ini配置文件进行配置,ini配置文件具体位置取决于你使用的操作系统, 由platformdirs应用程序配置,可以查看。?

虚拟环境就介绍到这里了,虚拟环境的本质就是修改shell的PATH环境变量,如果你有这方面的想法,你也可以编写一个实现虚拟环境的工具,当然,完全没有这个必要,真的,没什么意思。

python虚拟环境—virtual environment

操作系统:ubuntu16.04

举个例子,tensorflow(tf)是一个十分流行的python机器学习库,你现在手里有两个tf项目,其中项目A需要使用 python2.7 + f1.2 ,项目B需要使用 python2.7 + tf1.6 .这两个项目你得同时进行,怎么办?

愚蠢的办法是需要运行项目A时,将python2.7中的tf1.6卸载掉,安装tf1.2;需要运行项目B时,将python2.7中的tf1.2卸载掉,安装tf1.6。如果是单个模块还好,但是tf的不同版本又依赖于python中的其他已安装模块,而且tf1.2和tf1.6对依赖模块有不同的版本要求,那么转换一次得卸载安装好几个模块,是不是很爆炸?

课题组里几个同门共用一台服务器,每个人拥有一个系统账户,其中只有一个人拥有root权限,里面每个人都需要使用python跑程序,而且每个人对python版本以及python模块的版本都有不同需求,很多人又没有root权限,如何解决?

使用python的虚拟环境可以轻松解决上面的问题!

python虚拟环境是一个隔离/独立的python开发环境,和系统python环境可以完全隔离,互不相关,相当于多了一个python开发环境。而且你在python虚拟环境中的开发过程和使用系统python一模一样,你可以在你创建的python虚拟环境中使用pip工具安装任何你需要的模块,该模块和系统python环境完全不相关。虚拟环境的这个特点就能解决上面的问题了。

python有两个模块可以用于创建和管理python虚拟环境:

其中,venv模块在python3.3以上的版本可以使用,而virtualenv在python2.7+和python3.3+都可以使用。

默认的系统python中是没有安装以上两个工具的,需要使用以下命令安装:

安装好之后,就可以使用这两个工具安装python虚拟环境了。

我的系统python版本有python2.7和python3.5,虚拟环境的版本只能是系统中已有的python版本。使用virtualenv安装虚拟环境的命令如下:

什么参数都不指定的话,它会使用 /usr/bin/python 路径下的python解释器版本,即python2.7。因此会默认安装python2.7虚拟环境, /home/yan/env 表示虚拟环境的安装路径。

如果你要安装的是python3.5的虚拟环境,可以这样:

一般情况下,上面两条命令就够了,这样安装得到的python虚拟环境和系统python环境是完全隔离的。

更多的命令选项可以在命令行中直接输入 virtualenv 命令获取。

venv只有python3可以使用,因此只能创建python3的虚拟环境,创建命令如下:

其中, python3 -m venv 是死命令,最后的安装路径自己指定。

注意: 以上两种安装方式在安装虚拟环境的同时也自动安装了pip工具。

安装好虚拟环境之后,每次使用该虚拟环境前需要使用 source 命令 激活 它。假设前面我在 /home/yan/env3/ 目录下安装了python3.5的虚拟环境,现在我使用以下命令激活它:

激活之后,在命令行提示符前面会有 (env3) 的提示,表示当前你处的python虚拟环境,比如我电脑的情况:

现在你可以在激活环境中干任何事情,比如使用pip命令在你新的python虚拟环境中安装模块:

或者执行python脚本。

使用完该虚拟环境之后,你需要在命令行输入 deactivate 命令来 退出 该虚拟环境:

之后就回到了正常的系统python环境中。

由于你创建该虚拟环境的目的是为了跑某个项目的程序,现在该项目做完了,不需要该虚拟环境了,你可以把该虚拟环境直接删除,如何删?

直接将创建虚拟环境时生成的文件夹删掉,就这么简单。比如我要把我刚才创建的env3虚拟环境删除:

在删除虚拟环境前记得一定得先退出该虚拟环境。

python虚拟环境的好处是:每个虚拟环境之间,以及虚拟环境和系统环境之间是完全隔离的,不同虚拟环境中,你可以安装不同版本的模块,就仿佛你可以同时拥有N多个不同的python开发环境。

唯一麻烦的一点是:每次进入某个虚拟环境之前,都要使用 source 命令激活。每次使用完,都要使用 deactivate 命令退出。

(责任编辑:IT教学网)

更多
上一篇:没有了