#安装
##虚拟环境
注意虚拟环境的**包安装**不要加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
那么安装同一个包的不同版本出现的情况是:
**后安装的包会吧原来安装的包覆盖掉**
这样子,一台机器上两个项目依赖与相同包的不同版本,则会导致一些项目运行失败
解决方案就是 : 虚拟环境
虚拟环境是真是python环境的复制版本
###2 安装虚拟环境的命令
添加下面2行($home代表家目录)
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
source .bashrc #让你的文件立马生效
第一行代表你创建的虚拟环境放在哪里
第二行代表开启了 扩展命令的全局变量
注意如果不加 -p python3 则配置是python2的虚拟环境
####创建一个python3的虚拟环境
mkvirtualenv -p python3 xdl
(如果提示没有什么module 则直接pip安装即可)
看图最后一行,如果你前面出现了括号,说明你正在虚拟环境中工作
而且以后的安装包的位置也就是在虚拟环境中,在虚拟环境中使用的也是这个环境的python
初次之外 跟其他没有任何区别,并不会说你创建了一个目录,然后退出虚拟环境后就没有了,只是复制一个python的运行环境
在虚拟环境中使用的python是复制的python 安装的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 为什么比 pip list 的包少几个呢?
因为pip , wheel , setuptools 等包,是自带的而无法(un)install的。考虑到pip freeze的用途,所以这些包并没有显示。
(== 是指定版本号)
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: : 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