美文网首页
安装Python虚拟环境和django

安装Python虚拟环境和django

作者: 竹林晓圣 | 来源:发表于2018-01-28 03:49 被阅读471次

    走了一些弯路,简单记录一下

    本文参考以下文章在本地环境下测试成功
    ubuntu16.04
    廖雪峰的博客!
    Virtualenv的介绍

    创建虚拟环境的时候一些文章用的是virtualenv命令而另一些用的是mvirtualenv

    效果是差不多的,区别在于刚开始安装了virtualenv一个软件还要virtualenvwrapper这两个。下面一一道来

    首先要明白的是创建虚拟环境的作用是什么

    1. 开发Python应用的时候,会需要不同版本的Python运行环境。
    2. 不同的的应用对不同版本的库文件。
    3. 不同应用之间的隔离和不同插件之间的隔离。
    4. 虚拟环境可以随时恢复随时删除。
    首先要在宿主环境里面安装virtualenv和virtualenvwrapper
    sudo pip install virtualenv
    sudo pip install virtualenvwrapper
    

    在~/.bashrc文件里面加上:

    # 其中#username改成你自己的用户名,.virtualenv是虚拟环境的家目录。
    export WORKON_HOME=/home/username/.virtualenv 
    source /usr/local/bin/virtualenvwrapper.sh
    

    之后创建虚拟环境的存放路径

    之后source ~/.bashrc

    现在我们用-p选项创建一个python3的虚拟环境,当然系统里得先装好了python3。

    mkvirtualenv -p python3 py3env

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

    (py3env) 03:21:35@backbox:06~/.virtualenvs $ l
    get_env_details*  postmkvirtualenv   premkvirtualenv*
    initialize        postrmvirtualenv*  prermvirtualenv*
    postactivate      preactivate*       py3_django/
    postdeactivate    predeactivate      py3env/
    postmkproject*    premkproject*
    

    这里要说两点,
    ####一。有些文章只安装了$ pip3 install virtualenv
    这时候,新建虚拟环境的时候就需要用$ virtualenv --no-site-packages venv命令。其中 --no-site-packages参数指定,已经安装到系统Python环境中的所有第三方包都不会复制过来。可以得到一个相对简洁的Python环境。进入这个环境需要$ source venv/bin/activate
    ####二。我的本地环境安装了Python2.7和Python3.5,$ sudo pip install virtualenv之后需要再$ sudo pip3 install virtualenv么?答案是不需要。
    03:23:55@backbox:01~ $ which virtualenv /usr/local/bin/virtualenv

    执行完了之后,会自动切换到这个新创建的虚拟环境。我们会发现命令行提示符会发生改变,虚拟环境的名字会加在提示符开头:
    (py3_django) 03:14:28@backbox:181~/django/BookManager $

    现在看一下PS1 的值

    (py3_django) 03:41:41@backbox:191~/django/BookManager $ echo HelloWorld
    HelloWorld
    (py3_django) 03:41:58@backbox:192~/django/BookManager $ echo $PS1
    (py3_django) \[\e]0;\u@\h: \w\a\]\[\033[1;31;1m\]\t@\h:\[\033[32;00m\]\j\#\[\033[1;37;1m\]\w \[\e[30;00m\]\$
    

    其他一些常用命令:

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

    用pip list 和 pip freeze 命令查看软件包,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

    (py3env) 03:17:37@backbox:02~ $ pip list
    DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
    pip (9.0.1)
    setuptools (38.4.0)
    wheel (0.30.0)
    (py3env) 03:17:46@backbox:03~ $ pip freeze
    (py3env) 03:17:53@backbox:04~ $ 
    
    
    在虚拟环境中设置默认命令

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

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

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

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

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

    相关文章

      网友评论

          本文标题:安装Python虚拟环境和django

          本文链接:https://www.haomeiwen.com/subject/tghaaxtx.html