• python虚拟环境-virtual environment


    python虚拟环境-virtual environment

    一、总结

    一句话总结:

    python虚拟环境是一个隔离/独立的python开发环境,和系统python环境可以完全隔离,互不相关,相当于多了一个python开发环境。

    1、python 可用于virtual environment的具体模块?

    venv:venv模块在python3.3以上的版本可以使用
    virtualenv:virtualenv在python2.7+和python3.3+都可以使用

    2、python virtual environment优缺点?

    优点:每个虚拟环境之间,以及虚拟环境和系统环境之间是完全隔离的,不同虚拟环境中,你可以安装不同版本的模块,就仿佛你可以同时拥有N多个不同的python开发环境。
    缺点:每次进入某个虚拟环境之前,都要使用source命令激活。每次使用完,都要使用deactivate命令退出。

    二、python虚拟环境-virtual environment

    转自或参考:python虚拟环境—virtual environment
    https://www.jianshu.com/p/2fdb53825d35

    操作系统:ubuntu16.04

    1.1 什么时候会用到python虚拟环境

    问题1

    举个例子,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对依赖模块有不同的版本要求,那么转换一次得卸载安装好几个模块,是不是很爆炸?

    问题2

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

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

    1.2 什么是python虚拟环境

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

    1.3 安装虚拟环境

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

    • venv;
    • virtualenv;

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

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

    #安装venv
    sudo apt install python3-venv
    #安装virtualenv
    pip install virtualenv
    或者
    sudo -H pip install virtualenv
    

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

    1.3.1 使用virtualenv

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

    #安装python2.7虚拟环境
    virtualenv /home/yan/env 
    

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

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

    #安装python3.5虚拟环境
    virtualenv --python=python3.5 /home/yan/env3
    

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

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

    1.3.2 使用venv

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

    python3 -m venv /home/yan/env3
    

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

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

    1.4 如何使用虚拟环境

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

    source /home/yan/env3/bin/activate
    

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

    yan@yanubuntu:~$ python3 -m venv /home/yan/env3
    yan@yanubuntu:~$ source /home/yan/env3/bin/activate
    (env3) yan@yanubuntu:~$ 
    

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

    pip install tensorflow
    pip install opencv-python
    pip install matplotlib
    ...
    

    或者执行python脚本。

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

    (env3) yan@yanubuntu:~$ deactivate
    yan@yanubuntu:~$ 
    

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

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

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

    yan@yanubuntu:~$ rm -r /home/yan/env3
    yan@yanubuntu:~$ 
    

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

    1.5 总结

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

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

    1.6 参考文献

     
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    我藏在你的心里,你却不愿意寻找# BUG躲猫猫
    阴间需求之跨端登录
    神奇的props
    map与filter:你先我先?
    阴间BUG之动态路由刷新几率回首页
    阴间BUG之动态路由添加失败
    我在eltable就变了个模样,请你不要再想我,想起我
    SCP打包部署方法
    indexOf 与 includes
    YACC和BISON学习心得
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13439032.html
Copyright © 2020-2023  润新知