一、Linux下安装、配置virtualenv

pip3 install virtualenv
# 创建虚拟环境env1
virtualenv env1 --no-site-packages --python=python3
# 进入虚拟环境(激活)
source env1/bin/activate
# 安装第三方包
pip3 install flask
# 退出虚拟环境
deactivate

二、确保开发环境的一致性

假设我们在本地开发环境,准备好了项目+依赖包环境;现在需要将项目上传至服务器,上线发布;那么就要保证服务器的python环境一致性。

解决方案:

1.通过命令保证环境的一致性,导出当前项目的依赖(需要提前安装pipreqs)
pipreqs ./ --encoding=utf-8 2.在服务器下创建virtualenv,在虚拟环境中导入项目所需的依赖
pip3 install -r requirements.txt

三、virtualenvwrapper

virtualenv缺点:

每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录,并且还有可能你忘记了虚拟环境放在哪。

解决:

使用virtualenvwrapper管理虚拟环境(virtualenv),其实就是用来统一管理虚拟环境的目录,并且省去了source的步骤。

安装virtualenvwrapper

pip3 install virtualenvwrapper

设置Linux的环境变量,每次启动就加载virtualenvwrapper

# 打开文件
vim ~/.bashrc # 写入以下4行代码
# 设置virtualenv的统一管理目录
export WORKON_HOME=~/envs
# 添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--no-site-packages"
# 指定python解释器
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3
# 执行virtualenvwrapper安装脚本
source /usr/local/python3/bin/virtualenvwrapper.sh # 读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bashrc

基本使用virtualenvwrapper

# 创建一个虚拟环境
mkvirtualenv env2 # 这会在~/envs中创建env2文件夹 # 激活虚拟环境env2
workon env2
# 再创建一个新的虚拟环境
mkvirtualenv env3
# workon可以任意停止你当前的环境,还可以在多个虚拟环境中来回切换
workon env2
workon env3
# 也可以手动停止虚拟环境
deactivate
# 删除虚拟环境,需要先退出虚拟环境
rmvirtualenv env2

常用其他命令

# 列出所有的虚拟环境
lsvirtualenv # 导航到当前激活的虚拟环境的目录中,这样您就能够浏览它的site-packages
cdvirtualenv # 和上面的类似,但是是直接进入到site-packages目录中
cdsitepackages # 显示site-packages目录中的内容
lssitepackages

更多内容:官方文档

virtualenv与virtualenvwrapper的更多相关文章

  1. 聊聊 virtualenv 和 virtualenvwrapper 实践

    各位 Python 的小伙伴肯定多多少少接触过 virtualenv.本文将介绍 virtualenv 以及如何更科学更优雅地使用 virtualenv. virtualenv 首先来聊一下 virt ...

  2. virtualenv and virtualenvwrapper on Ubuntu 14.04

    In this post I’ll go over my attempt to setup virtual environments for Python development. Most Pyth ...

  3. virtualenv 和 virtualenvwrapper 实践

    virtualenv 首先来聊一下 virtualenv 是个什么鬼. 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充 ...

  4. python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm

    1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...

  5. virtualenv与virtualenvwrapper虚拟环境

    python开发之virtualenv与virtualenvwrapper讲解 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物 ...

  6. virtualenv与virtualenvwrapper讲解

    #现在有个需求,我现在有两个项目,一个得运行于django1.1.11 ,还有一个版本得跑在django2.0上 python3 manage.py runserver  0.0.0.0:8000   ...

  7. python虚拟环境--virtualenv和virtualenvwrapper

    python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...

  8. virtualenv、virtualenvwrapper安装和使用;Mac os的特殊性

    [sudo] pip install virtualenv 或者[sudo] pip3 install virtualenv [sudo]可用可不用 pip/pip3 install virtuale ...

  9. pyenv、virtualenv、virtualenvwrapper三种python多版本介绍

    今天有把此前接触过的三种python实现多版本环境用到的软件pyenv.virtualenv.virtualenvwrapper,了解了一番,现做如下总结: 一.pyenv: 是针对python多版本 ...

  10. Centos7虚拟环境virtualenv与virtualenvwrapper的安装及基本使用

    一.使用虚拟环境的原因 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难.此时,我们需 ...

随机推荐

  1. POJ 3100:Root of the Problem

    Root of the Problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12060   Accepted: 6 ...

  2. Codeforces Round #395 (Div. 1)

    比赛链接:http://codeforces.com/contest/763 A题: #include <iostream> #include <cstdio> #includ ...

  3. rsync单向同步

    系统版本:Centos X64 6.4(最小化安装) 先安装依赖包 [root@localhost ~]# yum install vim wget lsof gcc make cmake makec ...

  4. OPENCL 错误码

    #define CL_SUCCESS 0 #define CL_DEVICE_NOT_FOUND -1 #define CL_DEVICE_NOT_AVAILABLE -2 #define CL_CO ...

  5. Linux 下編輯 PDF 檔的工具(PDF editor under Linux)(转载)

    转自:http://www.gtwang.org/2011/05/linux-pdf.html PDF 檔雖然是一個跨平台的檔案格式,但 Adobe 只有提供免費的 Adobe Reader,要看 P ...

  6. Bug分支(转载)

    转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178 ...

  7. 暴力/思维 HDOJ 5386 Cover

    题目传送门 /* 题意:给出刷墙的所有的方法,求一种顺序,使得原矩阵刷成目标矩阵 暴力:(题解)我们只要每次找一行或一列颜色除了0都相同的,然后如果有对应的操作,就把这行这列都赋值成0即可 */ /* ...

  8. 用 jQuery 实现简单倒计时功能

    问题场景:假设某个活动截止时间给定了,现在需要开发一个页面可以自动刷新距离活动截止时间还剩多少天? <!DOCTYPE html> <html xmlns="http:// ...

  9. UML中类之间的关系

    UML中类之间的关系分为以下几种:依赖.关联.泛化.聚合.组合. 依赖是指一个类使用了另一个类,它是一种使用关系,描述了一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定).最常见的依 ...

  10. 编写UI自动化测试用例原则

    1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器.2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统3.尽量只做功能中正向逻辑的验证,不要考虑 ...