python 多版本虚拟环境的安装以及常见报错的处理(解决python2.7 - pip wheel failed with error code 2 问题)

#安装

##虚拟环境

注意虚拟环境的**包安装**不要加sudo,sudo会装在全局! 注意虚拟环境的**包安装**不要加sudo,sudo会装在全局! 注意虚拟环境的**包安装**不要加sudo,sudo会装在全局! ###1 虚拟环境的创建和使用

项目1 ——> 依赖 mysqldb 1.2.5

项目2 ——> 依赖 mysqldb 2.0.1

之前安装python 包命令 sudo pip3 install 包名
包的安装路径 /usr/loacal/lib/pythoon3.5/dist-packages

那么安装同一个包的不同版本出现的情况是:
**后安装的包会吧原来安装的包覆盖掉**

这样子,一台机器上两个项目依赖与相同包的不同版本,则会导致一些项目运行失败

解决方案就是 :

###2 安装虚拟环境的命令

  1. 安装虚拟环境
    sudo pip install virtualenv
  2. 安装虚拟环境扩展包
    sudo pip install virtualenvwrapper
  3. 编辑用户主目录下的.bashrc 文件
    cd ~/
    vim .bashrc

添加下面2行($home代表家目录)

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

source .bashrc #让你的文件立马生效
第一行代表你创建的虚拟环境放在哪里
第二行代表开启了 扩展命令的全局变量

title
title

  1. 使用 source .bashrc 使其生效一下
    ####创建 虚拟环境命令:
    mkvirtualenv 虚拟环境名

####创建一个python3的虚拟环境
mkvirtualenv -p python3 xdl
(如果提示没有什么module 则直接pip安装即可)
title

看图最后一行,如果你前面出现了括号,说明你正在虚拟环境中工作

虚拟机的位置
title
title
发现安装位置的 lib中 是pyton3.6

而且以后的安装包的位置也就是在虚拟环境中,在虚拟环境中使用的也是这个环境的python
初次之外 跟其他没有任何区别,并不会说你创建了一个目录,然后退出虚拟环境后就没有了,只是复制一个python的运行环境


####进入虚拟环境工作
workon 虚拟环境名
####查看机器上有多少个虚拟环境
workon 空格 + 两个tab
####退出虚拟环境
deactivate ( 英[ˌdi:ˈæktɪveɪt] 英文解除的意思)
####演示一下
创建后仍然有文件
退出
进入工作
查看多少虚拟环境

####注意 创建必须有网

####删除虚拟环境
rmvirtualenv + 名字

####虚拟环境安装包命令
pip install 包名
注意: 不能用 sudo pip install 包名, 这个命令会把包安装到真实的主机环境上。

apt-get install 软件
pip install 包名

两个命令区别: pip依赖python环境,是安装python包。
而apt-get 是安装ubuntu的软件

查看虚拟环境有哪些包

pip list

pip freeze
title
解释:

pip freeze 为什么比 pip list 的包少几个呢?
因为pip , wheel , setuptools 等包,是自带的而无法(un)install的。考虑到pip freeze的用途,所以这些包并没有显示。

安装django

(== 是指定版本号)
pip install django==1.8.2
那你再pip list 就发现有django了

###以上就是我们介绍的虚拟环境如何安装

带着大家总结一下
课程耗时约 6 + 10 + 10 + 22
50分钟左右

#报错

报错代码:

Not overwriting existing python script /home/python/.virtualenvs/flask_py/bin/python (you must use /home/python/.virtualenvs/flask_py/bin/python3)

requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f1d66475ac8>: Failed to establish a new connection: [Errno 101] 网络不可达
root@iZuf6d141678w8l07mirnbZ:~# mkvirtualenv -p python3 xdl 
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /root/.virtualenvs/xdl/bin/python3
Not overwriting existing python script /root/.virtualenvs/xdl/bin/python (you must use /root/.virtualenvs/xdl/bin/python3)
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pkg_resources, pip, wheel...
  Complete output from command /root/.virtualenvs/xdl/bin/python3 - setuptools pkg_resources pip wheel:
  Collecting setuptools
  Downloading http://mirrors.aliyun.com/pypi/packages/d1/6a/4b2fcefd2ea0868810e92d519dacac1ddc64a2e53ba9e3422c3b62b378a6/setuptools-40.8.0-py2.py3-none-any.whl (575kB)
Collecting pkg_resources
Exception:
Traceback (most recent call last):
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/commands/install.py", line 328, in run
    wb.build(autobuilding=True)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_set.py", line 512, in _prepare_file
    finder, self.upgrade, require_hashes)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_install.py", line 273, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 442, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 400, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 545, in _get_pages
    page = self._get_page(location)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 648, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 760, in get_page
    resp.raise_for_status()
  File "/root/.virtualenvs/xdl/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/models.py", line 840, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
pip._vendor.requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://mirrors.aliyun.com/pypi/simple/pkg-resources/
----------------------------------------
...Installing setuptools, pkg_resources, pip, wheel...done.
Traceback (most recent call last):
  File "/usr/bin/virtualenv", line 9, in 
    load_entry_point('virtualenv==15.0.1', 'console_scripts', 'virtualenv')()
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 719, in main
    symlink=options.symlink)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 988, in create_environment
    download=download,
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 918, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 812, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /root/.virtualenvs/xdl/bin/python3 - setuptools pkg_resources pip wheel failed with error code 2

提示 你pip版本有问题
看图:

##解决方案1:升级pip版本

多个pip版本共存与切换的问题

# 查看pip默认版本

pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)  # 如图python2的pip默认版本为9.0.1
接下来查看pip3是否可以正常使用

pip3 ——V
pip 8.1.2 from /usr/local/lib/python3.5/dist-packages (python 3.5)  # 如图python3的pip默认版本为8.1.2,系统会提示可升级
升级pip(如果是python2不能使用下面改成Python2)

sudo python3 -m pip install -U pip
如果没写sudo会提示报错:

PermissionError: [Errno 13] 权限不够: '/usr/local/bin/pip'
顺利安装完成后,查看能否正常运行

pip3 -V
再次创建虚拟环境

mkvirtualenv flask_py

如果还不成功:
##方法2:
重装

解决办法,重新安装virtualenv环境(有效): 
先卸载:

apt-get purge python-virtualenv python3-virtualenv virtualenv
1
再安装:

pip install virtualenv

##成功撒花
title

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值