资讯专栏INFORMATION COLUMN

python基础教程:虚拟环境

xiangzhihong / 788人阅读

摘要:不同虚拟环境内部的库版本涉及不会影响其它虚拟环境。接着,编辑,写入一下配置了配置虚拟环境的根目录的英文为了使以上配置生效,运行命令这时候,命令行里面就有了命令。

我们在写的Python程序的时候,经常会用到非标准库的包和模块,比如要求等非常有用的第三方包和模块。有时候也会用到某个包和模块的特定版本,可能是这个特定的版本修复了某个bug,或者是依赖的接口只有该版本有。也可能系统安装了Python 3.6,但应用程序要求3.7或Python 2.7。

这些情况注定了对多个Python及其库的需求。如果我们写的程序依赖某个库的1.0的版本,而系统安装的是1.2的版本,应用程序就无法运行;如果应用程序要求Python 2.7,则它在Python3上就可能会保存。

要解决这些不同需求的问题就是使用虚拟环境,它是一个目录树,其中安装特定的Python的版本及需要的库的版本。这样,不同的应用可以使用不同的虚拟环境来满足其运行条件。不同虚拟环境内部的库版本涉及不会影响其它虚拟环境。

Python的虚拟环境的创建和使用

在Python 2时代,虚拟环境管理用的是virtualenv及其封装virtuaalenvwrapper这两个包(通过pip install可以安装)。它们也支持在Python3下使用。virtuaalenvwrapper是使用shell开发的,因此不支持Windows。支持Windows的叫做virtuaalenvwrapper-win

从Python 3.3开始,引入了新的库venv来进行虚拟环境的管理,详见PEP-405的描述。它的很多操作都和virtualenv类似。pyvenv是Python 3.3和3.4中创建虚拟环境的推荐工具,但是在Python 3.6中已经弃用,之后的版本还是用venv

使用venv创建³³虚拟环境还是很容易的,将venv模块作为脚本运行并确定虚拟环境存放的路径即可:

python3 -m venv /path/to/myenv

条这将命令创建³³ /path/to/myenv目录,并在其中创建包含的Python解释器,标准库和各种支持文件的目录:

myenv
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.6
│   ├── pip
│   ├── pip3
│   ├── pip3.6
│   ├── python -> python3.6
│   ├── python3 -> python3.6
│   └── python3.6 -> /usr/bin/python3.6
├── include
├── lib
│   └── python3.6
│       └── site-packages
├── lib64 -> lib
└── pyvenv.cfg

创建虚拟环境后,就可以激活并使用它在Linux的MACOS和上,运行:

source /path/to/myenv/bin/activate

(脚本这个的英文为bash shell关系编写的,你如果使用的的英文cshfish壳,使用就要activate.cshactivate.fis脚本来激活)。

激活虚拟环境后,你的壳提示就会显示你正在使用的虚拟环境的名称,你就可以使用该虚拟环境下的Python的及相关的库了:

$ source myenv/bin/activate
(myenv) veelion@gtx:~/p2/tutorial/md_Python/codes$ which python
/home/veelion/p2/tutorial/md_Python/codes/myenv/bin/python
(myenv) veelion@gtx:~/p2/tutorial/md_Python/codes$ python
Python 3.6.8 (default, Dec 24 2018, 19:24:27) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
["", "/usr/lib/python36.zip", "/usr/lib/python3.6", "/usr/lib/python3.6/lib-dynload", "/home/veelion/p2/tutorial/md_Python/codes/myenv/lib/python3.6/site-packages"]
>>> 

运行venv的命令如果加-h选项对话,就可以看到详细的使用方法:

$ python3 -m venv -h
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip]
            ENV_DIR [ENV_DIR ...]

Creates virtual Python environments in one or more target directories.

positional arguments:
  ENV_DIR               A directory to create the environment in.

optional arguments:
  -h, --help            show this help message and exit
  --system-site-packages
                        Give the virtual environment access to the system
                        site-packages dir.
  --symlinks            Try to use symlinks rather than copies, when symlinks
                        are not the default for the platform.
  --copies              Try to use copies rather than symlinks, even when
                        symlinks are the default for the platform.
  --clear               Delete the contents of the environment directory if it
                        already exists, before environment creation.
  --upgrade             Upgrade the environment directory to use this version
                        of Python, assuming Python has been upgraded in-place.
  --without-pip         Skips installing or upgrading pip in the virtual
                        environment (pip is bootstrapped by default)

Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.
Ubuntu 16.04上Python2使用virtualenvwrapper创建Python 3的虚拟环境

Ubuntu 16.04系统默认的Python还是2,要在这个系统上使用Python 3.6或Python 3.7,最好的方法就是创建它们的虚拟环境。目前可能还有很多人在使用这个版本的Ubuntu,所以有必要讲一下这一小节的内容。这里,我们推崇使用virtualenvwrapper,拒绝使用Anacodna

(1)Ubuntu 16.04上安装Python 3.6,3.7和3.8

可以通过PPA源安装,也可以从源码编译安装为了方便(安装和以后更新),我们选择PPA:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6 python3.6-dev

如果安装3.7或3.8,替换掉上面命令中的3.6即可。

连接PPA比较慢的话,可以用USTC的反向代理,https:
//lug.ustc.edu.cn/wiki/mirrors/help/revproxy只要一句话,全替换成USTC加速的PPA:

sudo find /etc/apt/sources.list.d/ -type f -name "*.list" -exec sed  
-i.bak -r  "s#deb(-src)?s*http(s)?://ppa.launchpad.net#deb1 
http2://launchpad.proxy.ustclug.org#ig" {} ;
(2)安装配置virtualenvwrapper

首先,安装virtualenvwrapper

sudo pip install virtualenvwrapper

这会将virtualenvwrapper安装到Ubuntu系统的Python2搜索的路径,同时也会安装它依赖的virtualenv库。

接着,编辑~/.bashrc,写入一下配置:

# virtualenvwrapper settings
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper_lazy.sh

了配置虚拟环境的根目录的英文$HOME/.virtualenvs为了使以上配置生效,运行命令:

$ source ~/.bashrc

这时候,命令行里面就有了命令:mkvirutalenv

(3)创建虚拟环境

运行命令:

mkvirtualenv py3.6 -p=/usr/bin/python3.6

它的意思是,创建一个名为py3.6的虚拟环境,它的解释器是/usr/bin/python3.6,即我们创建了一个Python 3.6的虚拟环境叫做py3.6。

workon命令来激活py3.6这个虚拟环境:

$ workon py3.6
(py3.6) veelion@gtx:~$

这是贝提示的开始多了(py3.6)

退出虚拟环境,返回系统默认环境的命令是:

deactivate
Python的虚拟环境总结

(1)虚拟环境是干什么用的?
(2)Python3官方自带的venv的使用
(3)在Python2下用virtualenvwrapper创建Python3.6的虚拟环境。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43795.html

相关文章

  • 「Odoo 基础教程系列」第一篇——环境准备

    摘要:安装好后,在中执行查看版本信息,应该会看到输出如下信息版本号可能会不同如果提示未找到,则需要手动将用户基础目录下的添加到中。相关文章基础教程系列第篇开天坑啦 showImg(https://segmentfault.com/img/bV4GZu?w=1262&h=911); 之前说好的 「Odoo 基础教程系列」终于来了(撒花)~刚过完年重新投入到工作中,一下子事情有点多都要忙不过来了...

    szysky 评论0 收藏0
  • Mac 任意Python环境安装 Caffe 的终极教程

    摘要:包括系统的原因自带的系统环境无法安装及其他第三方库,必须通过来自行安装一个而这个路径和系统的并不一样。在如此混乱的开发环境下,配置实在艰难,特此教程。你要用的话可以不忽略该教程了。 原文链接 https://jinkey.ai/post/tech/m...本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai)感谢 yubang 老司机指导...

    FleyX 评论0 收藏0
  • Emacs:最好的Python编辑器?

    摘要:这正是使用编辑器的基本形式。禁用启动消息即显示所有教程信息的页面。因此,只使用编辑器并且完美支持所有这些语言将会大大提高工作效率。结语正如你所见,明显是最好的编辑器。 本文是realpython.com继《将Sublime Text 3打造为Python全栈开发环境及》和《Vim与Python真乃天作之合》,又一篇关于如何配置Python IDE的文章。这一次,主角变成了与Vim同样...

    Shimmer 评论0 收藏0
  • Sanic教程:快速开始

    摘要:快速开始在安装之前在支持异步的过程中,都经历了哪些比较重大的更新。踏出第一步我们将正式使用来构建一个项目,让我们踏出第一步,利用来编写一个返回字符串的服务程序。本次示例的源代码全部在上,见。 快速开始 在安装Sanic之前,让我们一起来看看Python在支持异步的过程中,都经历了哪些比较重大的更新。 首先是Python3.4版本引入了asyncio,这让Python有了支持异步IO的标...

    warmcheng 评论0 收藏0
  • Django搭建个人博客:教程的开发环境

    摘要:教程的开发环境本教程的开发环境为位为了避免开发环境不同而导致的错误,建议读者使用相同的版本。新建一个文件夹,教程中为。运行服务器非常幸运,自带一个轻量的开发服务器,也被叫做。市面上有很多的代码编辑器或者集成开发环境可以选择。 教程的开发环境 本教程的开发环境为: Win 10(64位) Python 3.7.0 Django 2.1 为了避免开发环境不同而导致的错误,建议读者使用相...

    WrBug 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<