当我们在同一个机器上进行开发多个项目,每个项目于用到包的不同版本的时候,就很尴尬。

安装python包的命令是:

  sudo pip install 包名

这样的话,会将包安装到/usr/local/lib/python2.7/disk-packages下。所有的包都会安装到这里。

当我们安装相同包的不同版本就会发生覆盖。非常尴尬。

怎样解决呢??安装python的虚拟环境!

安装python虚拟环境步骤如下:

1 升级一下python包管理工具pip

  sudo pip install --upgrade pip

  想升级包的时候 都可以用 sudo pip install --upgrade 包名

2 python虚拟环境工具安装

  sudo pip install virtualenv       或者   sudo apt-get install virtualenv

  sudo pip install virtualenvwrapper  或者   sudo easy_install virtualenvwrapper

3 创建自己的虚拟环境

  正常安装完两个工具,我们可以使用一下命令操作我们的虚拟环境:

  创建虚拟环境:  mkvirtualenv 环境名称 

    创建python2的虚拟环境:

      mkvirtualenv -p /usr/bin/python2.7 虚拟环境名称

    创建python3的虚拟环境: 原理同上

      mkvirtualenv -p /usr/bin/python3.5 虚拟环境名称

  使用虚拟环境:  workon 环境名称

  退出虚拟环境:  deactivate

  删除虚拟环境:  rmvirtualenv 环境名称

但是 发现 提示我们 没有mkvirtualenv命令,这个时候需要我们设置一下环境变量:

  3.1 创建要给目录用来存放我们的虚拟环境,需要选择自己的家目录下创建,存放虚拟环境的目录是一个隐藏目录 名为:   .virtualenvs    意思是  virtual environments 虚拟环境

    mkdir $HOME/.virtualenvs

    注意,创建之后不要进入这个目录,否则接下来绑定命令会出错

  3.2 打开~/.bashrc文件,添加如下两行:

    export WORKON_HOME=$HOME/.virtualenvs

    source /usr/local/bin/virtualenvwrapper.sh

  保存后终端执行:

    source ~/.bashrc

  执行完这两个步骤之后,系统就能识别mkvirtualenv命令啦~~~下面就可以创建自己的虚拟环境啦~

  正常安装完两个工具,我们可以使用一下命令操作我们的虚拟环境:

  创建虚拟环境: mkvirtualenv 环境名称

    如果装了python3的环境,默认会安装一个python3的虚拟环境。

    因为很多包还没有更新到python3,创建一个符合自己版本的虚拟环境如下:

    需要先找到自己python的安装路径和版本,我以我自己的为例:

    创建python2的虚拟环境:

      mkvirtualenv -p /usr/bin/python2.7 虚拟环境名称

    创建python3的虚拟环境: 原理同上

      mkvirtualenv -p /usr/bin/python3.5 虚拟环境名称

    注意:虽然选择了创建python版本的安装路径,但创建出来的虚拟环境目录仍然在我们自己创建的.virtualenvs 里

  使用虚拟环境:  workon 环境名称

  退出虚拟环境:  deactivate

  删除虚拟环境:  rmvirtualenv 环境名称

  查看所有的虚拟环境: workon 两次tab

  创建虚拟环境之后默认就进入这个虚拟环境了~注意命令提示符已经发生改变。

4 在自己的虚拟环境中安装和导入工具包,安装在自己的虚拟环境,与真实环境是不影响的。

  注意 不要使用sudo命令 这里是虚拟环境

  安装包:  pip install 包名称  例如: pip install pymysql

  查看当前虚拟环境种的包: pip list

  升级包:  pip install --update 包名

  卸载包:  pip uninstall 包名

通过以上方法,我们就可以创建自己的虚拟环境,在不同的项目中使用不同的环境用不同版本的包来开发啦!

最新文章

  1. 前端自学vs跟大神系统学?你看着办
  2. TODO:小程序的春天你想做什么
  3. 关于angularjS与jQuery框架的那些事
  4. Android webview通过http get下载文件下载两次的问题及解决方法
  5. No resource found that matches the given name
  6. 学习tolua#·20多个例子
  7. LinQ—Lambda表达式
  8. codeforces C. DZY Loves Sequences
  9. 日期选择器(Query+bootstrap和js两种方式)
  10. .net网站开发(前端):4.MVC HtmlHelper
  11. springMVC对异常处理的支持
  12. Deep Learning with Torch
  13. 【CQOI2017】小Q的表格
  14. Maven 多模块引用版本的问题 java.lang.NoSuchMethodError
  15. vue项目使用阿里巴巴矢量图标库教程
  16. Filebeat6.31整合Kafka集群消息队列(三)
  17. ASP.NET页面使用JQuery EasyUI生成Dialog后台取值为空
  18. js------科学计数法转换为正常小数
  19. 【软件工程】5.8 黑盒&白盒测试
  20. MySQL 50条必练查询语句

热门文章

  1. loadrunner录制上传文件,但是回放失败
  2. CSS Grid 网格布局全解析
  3. laravel 原生 sql
  4. 【Docker】Docker概述
  5. 【Flask】 结合wtforms的文件上传表单
  6. 压力测试(webbench、ab、siege)
  7. 强烈推荐!!!Fiddler抓取https设置详解(图文)
  8. 云计算--网络原理与应用--20171122--STP与HSRP
  9. 冲刺NO.8
  10. python每日一函数 - divmod数字处理函数