python虚拟环境virtualenv的安装与使用
如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的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虚拟环境virtualenv的安装与使用的更多相关文章
- [python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题
1.pyaudio安装大背景 最近在做智能音箱,需要编写声音拾取代码,我先是百度两篇比较常见的用python进行录音的操作的文章: python写一个录音小程序:http://blog.csdn.ne ...
- python虚拟环境virtualenv下安装MySQL-python(1.2.3)
该文章很有用建议收藏 我们在Windows下开发python应用时,可能需要安装各种第三方模块,但如果又不想污染公共的python环境,怎么办呢?最好是在各自的 python工程中创建一个virtua ...
- python虚拟环境virtualenv下安装MySQL-python
1.先在windows安装:https://github.com/konglingxi/mysqldb_for_python27 2.按照提示将python主环境中的mysqldb相关文件及文件夹移到 ...
- Python虚拟环境virtualenv的安装与使用详解(转)
virtualenv参考:https://www.jb51.net/article/114933.htm virtualenvwrapper参考:https://www.jianshu.com/p/7 ...
- windows下python虚拟环境virtualenv安装和使用
前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 pytho ...
- Python 虚拟环境Virtualenv
本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境 和 本地环境没有关系,随时可以删除这个隔离 ...
- python虚拟环境--virtualenv和virtualenvwrapper
python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...
- [转载]windows下安装Python虚拟环境virtualenv,virtualenvwrapper-win
1 前言 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv 这个工具,就可以构建一系列 虚拟的Py ...
- Linux下安装python虚拟环境(virtualenv,vritulaenvwrapper)
一.virtualenv virtualenv是如何创建"独立"的Python运行环境的呢? 原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令sour ...
随机推荐
- wireshark实战之局域网抓包分析
Wireshark.它是一款本地监听数据的大杀器,弊端是只能监听本地的数据,有什么办法可以让局域网中的流量都从本机走呢? 第一ARP嗅探,劫持网关,再本地抓包. 第二交换机镜像端口,在路由或者交换机处 ...
- 008.Docker Flannel+Etcd分布式网络部署
一 环境准备 1.1 Flannel概述 Flannel是一种基于overlay网络的跨主机容器网络解决方案,即将TCP数据包封装在另一种网络包里面进行路由转发和通信,Flannel是CoreOS开发 ...
- 附002.Docker常见命令
# docker --help Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h ...
- vue 解决双向绑定中 父组件传值给子组件后 父组件值也跟着变化的问题
说明: 近日开发中碰见一个很诡异的问题, 父组件动态的修改对象 data 中的值, 然后将这个对象 data 传给子组件, 子组件拿到后将 data 中的值 乘以 100 ,发现父组件中的值也跟着变 ...
- [洛谷3375]【模板】KMP字符串匹配
思路: KMP模板. #include<cstdio> #include<cstring> ],s2[]; int main() { scanf("%s%s" ...
- Ajax csrf跨站请求伪造
方式一: ///仅限js代码在HTML内//// $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 方式二: // ...
- 以为是tomcat出现using问题,怎么改都改不好终于找到原因
我也是醉了被自己打败了,以上问题困扰我半天是时间,百度好久都没有解决.应该打开tomcat的bin下的starup.bat结果打开了tomcat-src中的了,怪不得死活出现不了startup
- Content-type详解
HttpHeader里的Content-Type 之前一直分不清楚post请求里Content-Type方式,如application/x-www-form-urlencoded.multipart/ ...
- Java全栈程序员之03:Ubuntu下安装idea
JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...
- [Android]_[0基础]_[adb 有用命令]
场景: 1. ADB 作为pc端和手机端通讯的桥梁, 起到调试手机app,查看手机信息的重要作用. 2. 这里列举了一些比較有用的命令方便速查. 查看开启USB调试的设备列表: adb devices ...