• django开发环境部署之pip、virtualenv、virtualenvwrapper


    step1:安装pip

    在python中可以使用easy_install和pip安装python拓展但推荐使用pip

    Don't use easy_install, unless you like stabbing yourself in the face. 
    Use pip. Two reasons, there may be more: - pip provides an uninstall command - if an installation fails in the middle, pip will leave you in a clean state.

    pip简介 Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能。
    Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。

    Pip的安装可以通过源代码包,easy_install或者脚本。

    因为easy_install: 
    $ easy_install pip

    也可以通过这样的方式安装
    # sudo apt-get install python-pip python-dev build-essential

    安装package
    $ pip install Markdown

    列出安装的packages
    $ pip freeze

    安装特定版本的package 通过使用==, >=, <=, >, <来指定一个版本号。
    $ pip install 'Markdown<2.0' $ pip install 'Markdown>2.0,<2.0.3'

    升级包 升级包到当前最新的版本,可以使用-U 或者 --upgrade
    $ pip install -U Markdown

    卸载包
    $ pip uninstall Markdown

    查询包
    pip search "Markdown"

    更多详情
    pip help

    step2:安装virtualenv

    $ sudo pip install virtualenv 

    使用方法:
    1、创建虚拟环境
    $ virtualenv env1 //创建虚拟环境env1

    默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境,可以用下面命令查看package安装位置
    # python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
    /usr/lib/python2.7/dist-packages //Ubuntu下的路径
    /Library/Python/2.7/site-packages //mac下的路径

    $ virtualenv env2 --no-site-package
    \这条命令安装完了之后site package就会安装到创建好的虚拟环境中,这样就实现了独立于系统之外,不污染系统了

    2、启用虚拟环境
    cd env1
    source ./bin/activate
    注意此时命令行会多一个(env1),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。

    3、退出虚拟环境
    deactivate

    4、在虚拟环境中安装python module
    pip install [套件名称]

    #Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行: 如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
    export PIP_REQUIRE_VIRTUALENV=true

    或者让在执行pip的时候让系统自动开启虚拟环境:
    export PIP_RESPECT_VIRTUALENV=true

    step3:安装virtualenvwrapper

    Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: 
    1. 将所有虚拟环境整合在一个目录下
    2. 管理(新增,删除,复制)虚拟环境
    3. 快速切换虚拟环境
    4. tab补全虚拟环境名字
    5. 每個操作都提供允许使用者自己定制的hooks
    6. 可以编写比较容易分享的extension plugin Tab 補全虛擬環境的名字。 每個操作都提供允許使用者自訂的 hooks。 可撰寫容易分享的 extension plugin 系統。

    -安装
    $ sudo pip install virtualenvwrapper
    \此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行

    -配置.bashrc alias python="python2.7"
    #如果你的系统python安装的位置不是默认位置,请加上环境变量申明
    PATH=${PATH}:/usr/local/share/python

    #virtualenvwrapper
    export WORKON_HOME=$HOME/virtualenvs //虚拟环境存放位置自己指定
    source /usr/local/bin/virtualenvwrapper.sh                //指定virtualenvwrapper的执行文件路径
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 //系统python2.7执行文件位置,根据自己环境而定
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' //启动时候指定参数,就是我们用的独立于系统的安装包
    export PIP_VIRTUALENV_BASE=$WORKON_HOME //告知pip virtualenv的位置
    export PIP_RESPECT_VIRTUALENV=true //执行pip的时候让系统自动开启虚拟环境

    #如果是mac用户,由于 Terminal 在启动时加载的用户配置并非 .bashrc,而是 ~/.bash_profile,所在还需要在 ~/.bash_profile 加入
    [ -r ~/.bashrc ] && source ~/.bashrc

    使用方法
    1、列出虚拟环境列表
    workon

    lsvirtualenv

    2、新建虚拟环境
    mkvirtualenv [虚拟环境名称]

    3、启动切换虚拟环境
    workon [虚拟环境名称]

    4、复制虚拟环境
    $ cpvirtualenv ENVNAME TARGETENVNAME

    5、删除虚拟环境
    rmvirtualenv [虚拟环境名称]

    6、离开虚拟环境
    deactivate

    step3:安装pythonbrew

    对于日后想用不同的版本python进行代码测试的话自然少不了这个,接下来的内容中加上这部分

    step4:安装辅助组件

    #yolk是一个列出python安装包的工具 
    $ pip install yolk
    $ yolk -l

    step5:安装django

    #安装 
    ms@mss:~$ workon test
    (test)ms@mss:~$ pip install django

    #django安装的位置
    python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
    ['/home/ms/.virtualenvs/test/local/lib/python2.7/site-packages/django'] \这里就是我虚拟环境中

    到此本地的开发django环境也就安装完了,这样独立的开发环境,pythonbrew安装的python版本,不依赖于系统,完全独立,直接删除没有任何影响,或者直接拷贝虚机环境修改里面的python版本和django版本就可以进行另外的测试了和系统环境无关联。

  • 相关阅读:
    ArcEngine 里面的日期
    ArcEngine连接Oracle数据库
    ArcGIS连接Oracle数据库
    ms sql 带自增列 带外键约束 数据导入导出
    获取指定 MethodInfo 的 MSIL 或者 C# 源码
    架构知识集锦
    ClickOnce手动更新
    委托简单例子
    C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReadWriteLock)】
    可扩展类库强制取消异步调用
  • 原文地址:https://www.cnblogs.com/nulige/p/7802344.html
Copyright © 2020-2023  润新知