zoukankan      html  css  js  c++  java
  • python虚拟环境virtualenv的安装与使用

    如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,我们可以使用virtualenv解决这个问题,它可以为一个应用创建一套“隔离”的Python运行环境。

    一. 安装virtualenv 

    sudo apt-get install python-virtualenv 
    or
    sudo easy_install virtualenv 

    二. 创建环境

    创建python2环境:

    virtualenv myenv

    创建python3环境

    virtualenv -p /usr/bin/python3  myenv3

    如果你的虚拟环境安装库的时候出问题,比如python3环境

    需要安装pip3

    sudo apt-get install python3-pip

    创建完全隔离的Python环境,实质是创建了一个文件夹,我们的操作都是在这个目录里面进行的。

    创建的虚拟环境文件夹的位置在家目录下,名为myenv

     默认情况下,virtualenv会引用系统python环境中 site-­packages 中的库,并将其复制到虚拟python环境的库中。我们可以设置 --no-site-packages 参数取消对系统Python库的引用,以此来创建一个完全纯净的python环境。

    virtualenv --no-site-packages myenv

    myenv的lib/目录下,便是我们创建的python虚拟环境,这个默认的python版本由我们的系统python环境决定,比如我本机的python环境为python2.7,virtualenv便默认创建python2.7的环境。当然,我们也可以创建自定义版本的python虚拟环境,这在后文有介绍。  

    三. 激活虚拟环境

    cd ~/myenv/bin && source ./activate

     

    我们可以看到在命令行的前面已经加上了我们虚拟环境的名字“myenv”,表示当前环境是一个名为myenv的Python虚拟环境。

    此时我们便可以在这个虚拟环境中,进行相关操作了,比如安装第三方库。

    我们用pip安装第三方库shodan,然后在虚拟环境的myenv/lib/python2.7/site-packages目录下,我们可以找到安装好的库。

    四.使用Pyenv管理python版本

    1.安装 pyenv

    git clone https://github.com/yyuu/pyenv.git ~/.pyenv
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile
    echo 'eval "$(pyenv init -)"' >> /etc/profile

    安装完成以后,需要重新载入配置文件,或者退出以后重新登录,以使/etc/profile中的配置生效。

     我们可以通过下面的命令验证pyenv是否正确安装以及获取pyenv的帮助信息:

    1.使用 pyenv

    pyenv install
    安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。

    pyenv install -v 2.7.3

    卸载 

    pyenv uninstall 2.7.3

    安装python时会报错,比如:

    WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
    WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
    ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
    WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?

    安装相关依赖即可

    apt-get install bzip2-devel bzip2-libs -y
    apt-get install sqlite-devel -y
    apt-get install openssl openssl-devel openssl-static -y apt-get install readline readline-devel readline-static -y

    pyenv versions
    # 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。

    $ pyenv versions
    system
    * 3.5.1 (set by /root/.pyenv/version)
    3.5.1/envs/flask_py351
    3.5.1/envs/pelican
    flask_py351
    pelican

    创建新的python环境,位于 ~/.pyenv/versions/

    pyenv virtualenv 2.7.1 env271

    切换到新的环境:$ pyenv activate env271
    退回到系统环境:$ pyenv deactivate
    删除新创建的环境:$ rm -rf ~/.pyenv/versions/env271/



    pyenv rehash
    为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims
    每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行该命令

    pyenv install 2.7.3
    pyenv rehash

    pyenv global
    设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

    pyenv global 3.4.0

    设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。

    通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

    pyenv local 2.7.3

    设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
    这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。

    pyenv shell pypy-2.2.1
    pyenv shell --unset

      

    参考:https://my.oschina.net/lionets/blog/267469 

     

  • 相关阅读:
    利用SCI做的一个足球答题系统
    《Play for Java》学习笔记(四)Controller
    《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)
    《Play for Java》学习笔记(三)template+Message
    CSS垂直居中对齐
    Metro UI(Win 8风格)页面设计小记
    Play Framework介绍:主要概念(转)
    《Play for Java》学习笔记(二)基本的CRUD应用
    《Play for Java》学习笔记(一)项目框架
    复杂产品的响应式设计【流程篇】 (转)
  • 原文地址:https://www.cnblogs.com/ssooking/p/6155025.html
Copyright © 2011-2022 走看看