zoukankan      html  css  js  c++  java
  • 用virtualenv管理python3运行环境

    1. 简介

    virtualenv可以用来管理互不干扰的独立python虚拟环境,在有些场景下非常有用,例如:

    • 你有两个python项目,一个是python2.7的,另一个是python3的,可以创建两个虚拟环境。
    • 你有两个python项目,都依赖与一个module的不同版本,可以创建两个不同的虚拟环境,里面安装这个module的不同版本。

    virtualenvwrapper在virtualenv的基础上提供了一些更方便的命令。

    2. 安装

    sudo pip install virtualenv
    sudo pip install virtualenvwrapper

    在~/.bashrc里面加上:

    export WORKON_HOME=/home/dev/virtualenv  #你创建的虚拟环境所放置的目录
    source /usr/local/bin/virtualenvwrapper.sh

    然后source ~/.bashrc,就可以使用了

    3. 管理环境

    首先我们创建一个python3的虚拟环境,当然系统里得先装好了python3。

    mkvirtualenv -p python3 py3env

    -p 后面的参数指定了python3(也有可能要换成python3.2/python3.4,具体要看你系统里面/use/bin/里面的文件是什么名字),如果去掉这个参数,就会使用系统默认的python。最后一个参数py3env是创建的这个环境的名字。

    执行完了之后,会自动切换到这个新创建的虚拟环境。我们会发现命令行提示符会发生改变,例如在我的机器上:从 (py3env)user@vm-ubuntu1204 变成了 (py3env)user@vm-ubuntu1204 ,最前面多了这个虚拟环境的名字。

    其他一些常用命令:

    deactivate                # 退出当前虚拟环境
    workon [虚拟环境名称]       # 使用某个虚拟环境
    rmvirtualenv [虚拟环境名称] # 删除某个虚拟环境
    lsvirtualenv              # 列出所有虚拟环境

    4. 包管理

    在实际使用中,我们会用pip来管理python的包,而在虚拟环境里的包是和系统里的包分离开的,虚拟环境之间的包也是隔离开的。

    在生产环境中,我们可能需要将程序部署在很多机器上,如果能方便地把依赖的包同步到所有机器上能省去很多时间。

    可以在开发机器上执行下面这个命令,来列出所有的包并保存到packages.txt,其中-l参数是只列出当前虚拟环境的包:

    pip freeze -l > packages.txt

    然后在部署到生产环境的时候,把packages.txt也复制到每个机器,并在每个机器上执行:

    pip install -r packages.txt

    5. 在pycharm中使用虚拟环境

    在设置里面Project Interpreter,点击齿轮那个按钮,选择"Add Local",然后选择刚才创建的虚拟环境的路径。如下图所示:

    6. 在虚拟环境中设置默认命令

    有些时候,我们希望在进入虚拟环境之后执行某些命令,或者设置一些环境变量。

    例如:在django运行的时候,可以通过环境变量DJANGO_SETTINGS_MODULE来指定配置文件的路径。

    我们可以在虚拟环境目录下面创建文件bin/postactivate,并在文件里面写入:

    export DJANGO_SETTINGS_MODULE=config.django.production

    这个文件会在每次进入这个虚拟环境的时候被执行,这样这个参数就会被设置了。

    除了postactivate以外,其他阶段也可以有这样的设置,参看:https://virtualenvwrapper.readthedocs.org/en/latest/scripts.html

    7. 参考链接

    两篇比较好的博文:

    http://www.oschina.net/question/54100_26395
    http://liuzhijun.iteye.com/blog/1872241

    postactivate的用法:

    http://stackoverflow.com/a/11134336

    官方文档:

    https://virtualenvwrapper.readthedocs.org/en/latest/

  • 相关阅读:
    kill一个pthread_test.bin测试程序主线程、子线程退出kernel flow
    signal bit operation
    pthread
    信号发送处理流程
    sdcardfs
    node小贴士03
    node小贴士02
    node小贴士01
    siteserver cms 搜索功能
    语法的高亮显示
  • 原文地址:https://www.cnblogs.com/hiddenfox/p/virtualenv-python3.html
Copyright © 2011-2022 走看看