用 Conda 来管理 Python 虚拟环境

Python中文社区

共 2587字,需浏览 6分钟

 ·

2020-12-28 10:19

平时我们在使用Python的时候,有可能会使用多个Python环境,有的是Python版本不同,有的则是Python的第三方模块使用情况不同,因此,我们需要对Python进行虚拟环境管理。

使用Python虚拟环境的好处在于,一方面它能为项目的运行提供完整的环境支持,比如Python版本,第三方模块等,另一方面它能为项目的运行指定所需的环境,避免了Python不同版本和不同第三方模块之间的干扰。Python的虚拟环境管理有多种实现方式,比如Conda和Python自带的管理工具virtualenv

本文将会介绍如何使用Conda来管理Python虚拟环境。

使用Conda管理Python虚拟环境

首先需要确认在你的系统中安装了Anconda。检查系统中是否安装Anconda的命令为conda -V,如下:

查看Anconda的版本

Conda的常用命令如下:
conda list        # 查看安装了哪些包
conda env list        # 查看安装了哪些虚拟环境
conda update conda        # 检查更新当前conda
查看Conda安装了哪些虚拟环境

使用Conda来创建虚拟环境的命令如下:

conda create -n your_env_name python=X.X

其中,your_env_name是虚拟环境的名称,自己随便指定。python后面跟指定的Python版本,可以是2.7, 3.6, 3.7等。

创建好了自己的虚拟环境之后,就可以来激活虚拟环境,命令如下:

Linux: source activate your_env_name或者conda activate your_env_name
Windows: activate your_env_name

如果需要在虚拟环境中安装第三方模块,则命令如下:

conda install -n your_env_name [package]

最后是退出虚拟环境,命令如下:

Linux: source deactivate或者conda deactivate
Windows: deactivate

演示

在这部分中,我们将创建两个虚拟环境py2-lmjpy3-lmj,一个是Python2环境,一个是Python3环境,并展示如何使用这两个环境。

我们分别在py2-lmjpy3-lmj这两个环境中演示1/2的结果以及输出字符串"hello world!"。

[vagrant@localhost ~]$ conda create -n py3-lmj python=3.6
[vagrant@localhost ~]$ conda create -n py2-lmj python=2.7
[vagrant@localhost ~]$ conda env list
# conda environments:
#
py2-lmj                  /home/vagrant/.conda/envs/py2-lmj
py3-lmj                  /home/vagrant/.conda/envs/py3-lmj
base                  *  /usr/local/Anaconda3
rasa_env                 /usr/local/Anaconda3/envs/rasa_env
tfgpu                    /usr/local/Anaconda3/envs/tfgpu

[vagrant@localhost ~]$ conda activate py3-lmj
(py3-lmj) [vagrant@localhost ~]$ python
Python 3.6.10 |Anaconda, Inc.| (default, May  8 2020, 02:54:21)
[GCC 7.3.0] on linux
Type "help""copyright""credits" or "license" for more information.
>>> 1/2
0.5
>>> print("hello world!")
hello world!
>>> print "hello world!"
  File "", line 1
    print "hello world!"
                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("hello world!")?
>>> quit()
(py3-lmj) [vagrant@localhost ~]$ conda deactivate
[vagrant@localhost ~]$ conda activate py2-lmj
(py2-lmj) [vagrant@localhost ~]$ python
Python 2.7.18 |Anaconda, Inc.| (default, Apr 23 2020, 22:42:48)
[GCC 7.3.0] on linux2
Type "help""copyright""credits" or "license" for more information.
>>> 1/2
0
>>> print("hello world!")
hello world!
>>> print "hello world!"
hello world!
>>> quit()
(py2-lmj) [vagrant@localhost ~]$ conda deactivate

更多阅读



5分钟掌握在 Cython 中使用 C++


5 分钟掌握 Python 中常见的配置文件


5 分钟掌握 Python 中的 Hook 钩子函数

特别推荐





点击下方阅读原文加入社区会员

浏览 21
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报