精华内容
下载资源
问答
  • 在上篇怎么用venv创建Python虚拟环境中,我们介绍了如何运用传统的virtualenv/venv来创建Python虚拟环境。使用virutalenv/venv来创建虚拟环境很简便,可移植性很强,是创建Python虚拟环境的首选方式,但是有时用...

    Python虚拟环境是一个相对独立、隔绝的环境,该环境内Python模块是独立的,不会受到外部系统的影响。

    在上篇怎么用venv创建Python虚拟环境中,我们介绍了如何运用传统的virtualenv/venv来创建Python虚拟环境。使用virutalenv/venv来创建虚拟环境很简便,可移植性很强,是创建Python虚拟环境的首选方式,但是有时用virtualenv/venv却不能满足我们的要求。首先,在使用virtualenv/venv时,我们不能在不同的虚拟环境里面使用不同的Python版本;其次,有的模块用pip安装不太方便(特别是在Windows系统)比如网络爬虫模块Scrapy,因为这些模块复杂的库依赖不能用pip方便地解决,这时conda的优势就体现出来了。


    什么是conda?

    conda是一个开源的模块及虚拟环境管理系统。我们可以把conda看做是pip和venv的合体,也就是说使用conda既可以创建、删除虚拟环境,也可以安装、更新和删除库。另外venv只能创建Python的虚拟环境,conda则不限于Python,还可以用于其他语言比如R语言。

    安装conda

    要使用conda,我们首先得安装Anaconda或者Miniconda。

    Anaconda是一个大杂烩,包含了conda程序,同时还包含许多用于数据分析的模块,比如Numpy、Pandas、Seaborn等。另外Anaconda还有个很适合进行数据分析和机器学习的Python IDE—Spyder。Spyder使用起来非常方便,可以很方便地查看程序中的变量和程序的输出,如果你用Python进行数据分析,可以试试使用Spyder。

    相比之下Miniconda则是一个精简版,只含有conda和一些必须的模块,体量很小,安装很方便。

    如果你是conda新手,或者经常需要使用数据分析的模块,那么建议使用Anaconda,所有的模块都是现成的。如果你是conda老油条了,不想默认安装一堆自己不了解的库,只想用conda创建虚拟环境并且只安装自己想要的库,那么Miniconda则是一个更好的选择。

    Anaconda或者Miniconda的安装很简单,你只需根据你的操作系统选择相应的安装程序,一步一步安装就可以了。

    Anaconda安装程序:https://www.anaconda.com/products/individual

    Miniconda安装程序:https://docs.conda.io/en/latest/miniconda.html

    设置及启动conda

    在MacOS及Linux环境下,如果在安装时你选择将conda加入.bashrc或者.profile里面,则新开的终端会自动启动conda。如果你没有选择那个选项或者不想默认启动conda,可以生成一个脚本来手动启动conda。该脚本的内容在安装Anaconda或者Miniconda的时候会显示在屏幕上,你只需要将它们拷到一个脚本文件里面即可,比如说$HOME/activate_conda.sh,在需要使用conda的时候手动跑这个脚本即可。

    在Windows下,你可以搜索“Anaconda prompt”来启动conda运行环境。另外如果你更喜欢使用图形操作界面,你可以使用Anaconda Navigator,在搜索框里面搜索Anaconda Navigator即可找到。本文将重点介绍命令行的使用,这些命令在任何操作系统上都能使用。

    base环境

    当打开Anaconda Prompt或者打开Linux/MacOS的终端的时候,默认的环境是base。这个是conda自动生成的环境,如果你没有创建新的环境,则所有的操作都在base环境里面进行。如果你只是用Anaconda来进行数据分析,你可能并不需要创建虚拟环境,但是如果你想安装不同版本的模块,甚至不同版本的Python时,则需要使用创建新的虚拟环境。

    创建新的环境

    conda create --name scrapy-env
    

    这样我们生成了一个名为scrapy-env的环境。

    这个环境里面只有一些系统基本的模块,我们后续可以根据自己的需要在其中安装自己所需要的模块。

    如果我们我们想指定环境里面的Python版本,可以使用

    conda create --name python38-env python=3.8
    

    这里我们创建了一个名为python38-env的虚拟环境,该环境里Python的版本指定为Python3.8,这个是conda相比virtualenv/venv最重要的一点,因为在用virtualenv/venv时环境中Python的版本受系统Python版本的限制,而在使用conda时,环境里Python的版本则不受系统Python版本的限制。

    列举所有的虚拟环境

    conda info -e
    # or
    conda env list
    

    激活虚拟环境

    我们将使用环境scrapy-env:

    conda activate scrapy-env
    

    这里我们要安装的是网络爬虫模块Scrapy,安装Scrapy是使用conda的一个很好的例子。因为Scrapy有很复杂的库依赖,在Windows上用pip安装时经常会出现问题,所以在Windows上推荐使用conda来安装Scrapy。

    conda install --channel conda-forge scrapy
    

    在安装时我们可以看到除了主模块Scrapy,所有Scrapy运行所需要的程序和模块都会自动安装。特别需要注意的是,在该环境里面我们并有预先没安装Python,conda在安装Scrapy的时候会自动给我们下载和安装所需要的Python版本。

    另外这里我们并没有指定Scrapy模块的版本,则默认安装其最新的版本,我们也可以指定安装某个特定的版本:

    conda install --channel conda-forge scrapy=2.4
    

    另外需要指出的是–channel指定的是该模块所来自的频道,常见的频道有anaconda和conda-forge,如果不指定频道,则默认从anaconda频道安装。对于特殊的模块还有其特定的频道,比如机器学习/深度学习模块PyTorch就有自己pytorch频道。同一个模块在不同频道里面的最新版本可能会不一样,在用conda安装某个模块时,可以在该模块的官网找到所推荐的频道。

    如果我们需要更新某个模块,则可以使用

    conda update --channel conda-forge scrapy
    

    同样,在更新模块时,也需要指定频道,因为不同频道里面相同模块的最新版本可能会不一样。

    复制环境

    首先查看环境中安装的所有模块:

    conda list
    

    我们可以将环境中的模块设置导出到文件

    conda list --explicit > conda-requirements.txt
    

    使用–explict在输出中会列举模块的URL,这样便于查看和后续的安装。

    我们可以从配置文件中克隆一个完全一样的环境,这个和用pip从requirements.txt文件克隆环境是一样的。

    conda create --name scrapy-env-clone --file conda-requirements.txt
    

    删除环境

    当我们不需要某个环境时,可以将其删除:

    conda env remove --name scrapy-clone
    

    结语

    本文介绍了conda的基本概念和常用命令,你可根据自己的需要来决定是使用venv还是conda来创建Python虚拟环境。一般情况是,如果不需要使用特定的Python版本或者特殊的有复杂库依赖的模块,可以使用venv创建环境,因为其更轻便、更容易复制和移植。但如果有上述这两个特殊情况时,则conda是更好的选择。以上列举的conda的命令在大多数情况下已经够用了,如果你需要学习其他conda命令,可以参考conda的官网。

    展开全文
  • 在日常开发中,如果能灵活使用Python虚拟环境(virtual environment),可以解决不少烦人的问题。使用Python虚拟环境,可以让你在同一台电脑上使用不同版本的库(library),并可以方便地切换。比如我们现在稳定运行...

    在日常开发中,如果能灵活使用Python虚拟环境(virtual environment),可以解决不少烦人的问题。使用Python虚拟环境,可以让你在同一台电脑上使用不同版本的库(library),并可以方便地切换。比如我们现在稳定运行的版本是Django 2.x,如果我们想将其更新到Django 3.x,则可以使用虚拟环境。我们可以在不同的虚拟环境里面安装不同版本的Django,那样就可以随时切换到不同版本进行开发和测试。另外如果使用conda来创建虚拟环境,除了可以在不同环境里面使用不同版本的库以外,我们甚至可以在不同的环境里面安装不同的Python版本。

    本文重点介绍如何使用virtualenv/venv来创建Python虚拟环境,关于conda的使用,可以参考怎么用conda创建Python虚拟环境


    virtualenv/venv是最常用的创建虚拟环境的命令,相比于conda,其所创建的虚拟环境可移植性更强,体量也小很多。最重要的是,你不需要安装conda。

    在Python 2.7里面创建虚拟环境要安装virtualenv库。但Python 2.7已经不再更新,所以这里不对其进行介绍。建议在开发中尽量不要再使用Python 2.7,老的项目如果可以的话也尽量升级到Python 3。Python 3有很多很好用的功能,比如f字符串,支持typing等等。特别是typing已经成为新Python项目的必选,非常重要,后续我也将有专门的文章来介绍Python里面的typing。

    创建环境

    在Python 3中创建虚拟环境的命令是:

    python -m venv .venv-django2
    

    如果你的机器上同时安装有Python 2和Python 3并且python命令默认启动的是Python 2,则使用这个命令:

    python3 -m venv .venv-django2
    

    虚拟环境创建好后,会在当前目录下生成一个文件夹(.venv-django2)。我们通常不需要改动这个文件夹里面的任何文件,所以一般将其设置为隐藏文件夹,并且要将其加到.gitignore里面去,以让git不追踪该文件夹下的文件。

    激活环境和使用环境

    虚拟环境创建后并不会自动激活,使用下面的命令进行激活:

    # Linux and MacOS
    source .venv-django2/bin/activate
    
    # Windows
    .venv-django2\Scripts\activate.bat
    
    # (.venv-django2) C:\Users\......
    

    在虚拟环境被激活以后,可以看到命令行的最左边会显示(.venv-django2),这就说明我们当前正在该虚拟环境下。这时我们进行的任何操作都只发生在该环境下,所安装的任何库也只会安装在这个环境里。我们可以用pip命令来安装库:

    pip install Django==2.2.17
    

    通常在一个虚拟环境里会安装多个库,可以用这个命令来查看该环境下所安装的库:

    pip freeze
    

    我们只安装了Django,另外两个库是Django所需要的,是在安装Django时自动安装的。

    移植及共享环境

    使用虚拟环境的一大好处就是便于移植和共享,我们在创建一个虚拟环境后,可以将虚拟环境的设置导出成一个文件,然后在另一台机器上生成完全相同的环境。导出环境的命令是:

    pip freeze > requirements.txt
    

    生成一个相同环境的方法很简单,我们可以新开一个终端,然后生成一个新的环境。如果你在不同的文件夹,可以用完全相同的环境名。如果在同一个文件夹下,环境的名字就得唯一了。这里为了操作方面我们在同一个文件夹下生成一个不同的环境:

    python -m venv .venv-django2-clone   # use python3 if needed
    
    # Linux and MacOS
    source .venv-django2/bin/activate
    
    # Windows
    .venv-django2\Scripts\activate.bat
    

    因为我们在同一文件夹下,所以不需要拷贝requirements.txt,如果在不同的文件下则需要将requirements.txt拷到相应的文件夹下。使用以下命令在新环境里安装所需的库:

    pip install -r requirements.txt
    
    pip freeze
    # Django==2.2.17
    # pytz==2020.5
    # sqlparse==0.4.1
    

    我们可以看到这两个环境里面的库是完全一样的。

    停用及删除环境

    当一个环境被激活后,该环境的影响是全局性的,也就是说该环境里面的命令在任何地方都能跑,并不局限于其所处的文件夹内。当你不想使用虚拟环境时,可以用deactivate命令停用该环境。如果你不想用某个环境时,你可以将该环境所在的文件夹删除。但是需要注意的是,在删除环境文件夹之前,务必停用该环境,不然有些命令将不能正常使用。这时你将需要重置环境变量,简单的处理方法就是将终端关掉再重新打开。

    结语

    到这里为止我们详细地介绍了如果创建、使用和删除环境,我想你应知道已经如何创建一个Django 3环境了,我们只需在以上命令中将环境名和库的名字做适当改动即可,其他命令是一样的。

    展开全文
  • 场景:如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?...首先,我们pip安装virtualenv:$ sudo ...

    场景:

    如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

    解决办法

    这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

    首先,我们用pip安装virtualenv:

    $ sudo pip install virtualenv

    $ sudo pip install virtualenvwrapper

    然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

    第一步,创建虚拟环境(须在联网状态下):

    mkvirtualenv Flask_py

    第二步,进入虚拟环境

    $ workon Flask_py

    退出虚拟环境

    如果所在环境为真实环境,会提示deactivate:未找到命令

    $ deactivate Flask_py

    小结

    virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

    安装:

    创建:virtualenv --no-site-packages venv

    使用:source 虚拟环境名字/bin/activate

    退出:deactivate

    requirements 文件

    Python 项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号,以便在新环境中进行部署操作。

    在虚拟环境使用以下命令将当前虚拟环境中的依赖包以版本号生成至文件中:

    $ pip freeze >requirements.txt

    当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:

    $ pip install -r requirements.txt

    展开全文
  • Python虚拟环境有什么好处,怎么用? 答案: 好处: 虚拟环境就类似于为不同的项目创建不同的开发环境,开发环境内的所有使用的工具包互不影响,比如项目A使用xlrd1.0,xlwt,项目B使用xlrd1.0,requests,...

    超哥测试提升!

     

    少废话,翠花,上面试题:

     

        Python虚拟环境有什么好处,怎么用?

     

    答案:

     

    好处:

        虚拟环境就类似于为不同的项目创建不同的开发环境,开发环境内的所有使用的工具包互不影响,比如项目A使用xlrd1.0,xlwt,项目B使用xlrd1.0,requests,pymysql,如果没有虚拟环境,所有的这些工具包都只能安装在同一套环境里面,这样的弊端是,如果项目A的xlrd包需要更改为xlrd2.0版本,而项目B需要继续用xlrd1.0,则项目B会收到影响,但是有了虚拟环境,我们就可以把项目A的所有工具包安装在虚拟环境A里面,项目B的所有工具包安装到虚拟环境B里面,这样每个环境的的包的更改和删除都不会影响其他项目,环境相互独立,这就是虚拟环境的好处。

     

    用法:

    1. 首先要创建虚拟环境,可以是一个或者多个;

    2. 然后要进入某个特定虚拟环境时,就需要激活它;

    3. 当要切换或者退出时,就可以退出;

    4. 当以后再也不需要在这个虚拟环境中干活了,就可以删除它。

     

    扩展:

    具体操作步骤如下:

    安装Python虚拟环境有多种方法,此处我们只讲两种比较简单或容易操作的

    方法一:

    1-先安装virtualenvwrapper-win这个包,命令如图:

    查看是否安装成功

    2-通过命令mkvirtualenv 虚拟环境名来创建虚拟环境,创建后自动启动虚拟环境

    使用mkvirtualenv命令来创建虚拟环境,环境目录路径为系统默认路径,为C:\Users\Administrator\Envs

     

    3-使用workon命令来查看Envs目录下所有虚拟环境文件

     

    4-如果想退出虚拟环境,则使用deactivate命令,看到开头显示的虚拟环境消失则表示成功

     

    5-如果想直接启动某个虚拟环境,先用workon显示目前存在的虚拟环境,

    然后可以直接使用workon xxx虚拟环境即可

     

     

    常用命令:
    workon---列出虚拟环境列表
    mkvirtualenv 虚拟环境名称---创建虚拟环境

    rmvirtualenv 虚拟环境名称---删除虚拟环境
    workon  虚拟环境名称---启动/切换虚拟环境
    deactivate---退出虚拟环境

    activate---启动虚拟环境

     

    注意:Python创建的默认环境变量都在C:\Users\Administrator\Envs目录下,如果修改系统默认的虚拟环境目录,比如要在E盘创建一个目录,则需要先在E盘创建一个ENVS文件夹,然后添加环境变量

    添加环境变量后关闭cmd命令重新启动,再创建一个虚拟环境就会创建到此目录内

     

    方法二:

    借助pycharm完成虚拟环境创建,在创建项目的时候可以直接创建虚拟环境,

    也可以在设置中创建虚拟环境,具体看下图:

     

     

    到此,Python创建虚拟路径的两种简单方法讲述完毕!

     

    欢迎各位加入测试技术交流群,不定期公布招聘内推信息,全国各地都有,更多干货尽在超哥测试提升!

     如果不想提升自己,就只能任别人把你超越!

     

    我的公众号:

    我的微信:

     

    展开全文
  • /1 前言/咱们今天就来说一下Python的虚拟环境,可能有的小伙伴会疑惑,Python的虚拟环境有什么呢?接下来我们一起来探讨一下。/2 虚拟环境的作用/咱们今天就来说一下Python的虚拟环境,可能有的小伙伴会疑惑,...
  • 少废话,翠花,上面试题:Python虚拟环境有什么好处,怎么用?答案:好处:虚拟环境就类似于为不同的项目创建不同的开发环境,开发环境内的所有使用的工具包互不影响,比如项目A使用xlrd1.0,xlwt,项目B使用xlrd1.0...
  • Arena3.0仿真,WIN7,WIN8的系统运行不了,要在虚拟环境怎么建立虚拟环境
  • 关于python开始写项目创建一个虚拟环境什么是虚拟环境?我们有的时候会发现,一个电脑上有多个项目,一个依赖 Django 2.1,另一个比较旧的项目又要 Django 1.5,这时候怎么办呢?我们需要一个依赖包管理的工具来...
  • (四)输入命令创建虚拟环境 (五)怎么使用其他环境的包 (一)先pip安装好pipenv 命令 pip install pipenv (二)创建项目文件夹night (三)进入项目文件夹 按住shift+右键启动命令行 (四)输入...
  • 搭建环境 1,windows7 ...如果前两步骤有问题,请点击《conda创建python虚拟环境(windows环境)》 3, 安装支持虚拟环境的插件nb_conda conda install nb_conda 安装问题 1,conda info -e报错 ...
  • 你可能发现了,使用 virtualenvwrapper 生成的虚拟环境默认都是在c盘用户的一个envs的文件夹里,怎么修改生成的默认路径呢?需要你手动配置环境变量,变量值设为你想要保存虚拟环境的路径; 转载: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 516
精华内容 206
关键字:

虚拟环境怎么用