python虚拟环境的使用
如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,我们可以使用virtualenv解决这个问题,它可以为一个应用创建一套“隔离”的Python运行环境。
一. 安装virtualenv
sudo apt-get install python-virtualenv
or
sudo easy_install virtualenv
二. 创建环境
创建python2环境:
virtualenv myenv
创建python3环境
virtualenv -p /usr/bin/python3 myenv3
如果你的虚拟环境安装库的时候出问题,比如python3环境
需要安装pip3
sudo apt-get install python3-pip
创建完全隔离的Python环境,实质是创建了一个文件夹,我们的操作都是在这个目录里面进行的。
创建的虚拟环境文件夹的位置在家目录下,名为myenv
默认情况下,virtualenv会引用系统python环境中 site-packages 中的库,并将其复制到虚拟python环境的库中。我们可以设置 --no-site-packages 参数取消对系统Python库的引用,以此来创建一个完全纯净的python环境。
virtualenv --no-site-packages myenv
myenv的lib/目录下,便是我们创建的python虚拟环境,这个默认的python版本由我们的系统python环境决定,比如我本机的python环境为python2.7,virtualenv便默认创建python2.7的环境。当然,我们也可以创建自定义版本的python虚拟环境,这在后文有介绍。
三. 激活虚拟环境
cd ~/myenv/bin && source ./activate
我们可以看到在命令行的前面已经加上了我们虚拟环境的名字“myenv”,表示当前环境是一个名为myenv的Python虚拟环境。
此时我们便可以在这个虚拟环境中,进行相关操作了,比如安装第三方库。
我们用pip安装第三方库shodan,然后在虚拟环境的myenv/lib/python2.7/site-packages目录下,我们可以找到安装好的库。
四.使用Pyenv管理python版本
1.安装 pyenv
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile
echo 'eval "$(pyenv init -)"' >> /etc/profile
安装完成以后,需要重新载入配置文件,或者退出以后重新登录,以使/etc/profile中的配置生效。
我们可以通过下面的命令验证pyenv是否正确安装以及获取pyenv的帮助信息:
1.使用 pyenv
pyenv install
安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。
pyenv install -v 2.7.3
卸载
pyenv uninstall 2.7.3
安装python时会报错,比如:
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
安装相关依赖即可
apt-get install bzip2-devel bzip2-libs -y
apt-get install sqlite-devel -y
apt-get install openssl openssl-devel openssl-static -y
apt-get install readline readline-devel readline-static -y
pyenv versions
# 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。
$ pyenv versions
system
* 3.5.1 (set by /root/.pyenv/version)
3.5.1/envs/flask_py351
3.5.1/envs/pelican
flask_py351
pelican
创建新的python环境,位于 ~/.pyenv/versions/
pyenv virtualenv 2.7. env271
切换到新的环境:$ pyenv activate env271
退回到系统环境:$ pyenv deactivate
删除新创建的环境:$ rm -rf ~/.pyenv/versions/env271/
pyenv rehash
为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims
每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行该命令
pyenv install 2.7.
pyenv rehash
pyenv global
设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
pyenv global 3.4.
设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。
通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
pyenv local 2.7.
设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。
pyenv shell pypy-2.2.
pyenv shell --unset
参考:https://my.oschina.net/lionets/blog/267469
python虚拟环境的使用的更多相关文章
- (zhuan)Python 虚拟环境:Virtualenv
Python 虚拟环境:Virtualenv zhuanzi: http://liuzhijun.iteye.com/blog/1872241 virtualenv virtualenv用于创建独立的 ...
- CentOS使用virtualenv搭建独立的Python环境-python虚拟环境
CentOS使用virtualenv搭建独立的Python环境-python虚拟环境 virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解 ...
- Python 虚拟环境Virtualenv
本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境 和 本地环境没有关系,随时可以删除这个隔离 ...
- python虚拟环境Virtualenvwrapper无法升降级虚拟环境软件解决方法
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够在没有权限的情况下安装新套件,不同应用可以使用不同的套件版本,套件升级不影响其他应用. Virtaulen ...
- 在windows环境下利用virtualenv搭建Python虚拟环境
安装Python 安装时只有一点需要注意,一定一定要将Python添加到系统环境变量那一项勾选. 安装 virtualenv 加入系统目录之后,命令行(CMD)下就多了一条命令:pip.用pip可以自 ...
- windows下创建Python虚拟环境
windows下创建Python虚拟环境 说明 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv ...
- linux系统下Python虚拟环境的安装和使用
前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开发就显得很有必要. 安装虚拟环境 步骤: 打开Linux终端(快捷 ...
- Anaconda+用conda创建python虚拟环境
Anaconda+用conda创建python虚拟环境 Anaconda与conda区别 conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理.包管理与pip的使用类似,环境 ...
- ubuntu环境下python虚拟环境的安装
一. 虚拟环境搭建 在开发中安装模块的方法: pip install 模块名称 之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的.那如果一台机器上面开发多个 ...
随机推荐
- NFC高级
高级 NFC 本文档介绍了高级的NFC主题,如各种标签技术,NFC标签写入和前台发布,它允许即使当其他应用程序过滤器相同的时候,应用程序在前台处理Intent. Tag技术支持工作 当使NFC Tag ...
- validate大表单验证
Vaidate 插件 在前端开发中, 我们会遇到大表单的验证和组合成JSON, 这是一项巨大的任务, 如果都通过 手动编写低级代码来实现 50+ input类型的验证和复杂JSON的组装, 这无疑是异 ...
- CentOS 6.4源码编译安装httpd并启动测试
今天来总结一下在Linux中软件安装,通常我们应该知道,安装软件有两种方法:一种是软件包的安装,也就是rpm包的安装,就是指这些软件包都是 已经编译好的二进制rpm包,我们通过rpm安装工具和yum安 ...
- 松瀚SN8P2711 2722 ADC初始化程序及应用--汇编源码
/* 松瀚 SN8P2711 2722 ADC初始化程序 及应用实例 */ INIT_ADC: MOV A, #0XB2 // 启动ADC电路 使能AIN通道 B0MOV ADM, A MOV A,# ...
- SignalR 2.0 入门与提高
SignalR 2.0 入门与提高 SignalR 2.0 最近整理了SignalR2.0 部分知识点,原文翻译,由于自己是土鳖,翻译得不好的地方,欢迎指正!仅供各位初学者学习! 第一节. 入门ASP ...
- Node填坑教程——简易http服务器
我们这一期做一个简易的http服务器. 先建一个文件夹,就算是一个空的项目了.然后新建app.js和package.json文件. 这样一个简易项目的基本文件就建好了. 通过命令行工具,在项目路径下输 ...
- ASP.NET MVC 缓存扩展 - Donut Caching
项目介绍 ASP.NET MVC Extensible Donut Caching brings donut caching to ASP.NET MVC 3 and later. The code ...
- AngularJS and Asp.net MVC
AngularJS 初印象------对比 Asp.net MVC 之前就早耳闻前端MVC的一些框架,微软自家的Knockout.js,google家的AngularJs,还有Backone.但未曾了 ...
- 实现栈最小元素的min函数
#include<iostream> #include<stack> using namespace std; class min_stack { public: void p ...
- API HOOK库
API HOOK库 API HOOK有两种做法,一种是SetWindowHookEx,简单易用,但如果做其它的HOOK,如HOOK OpenProcess,就需要修改内存地址了,内存地址可以通过Wri ...