#现在有个需求,我现在有两个项目,一个得运行于django1.1.11 ,还有一个版本得跑在django2.0上
python3 manage.py runserver  0.0.0.0:8000     #我得调用django的模块,  pip3 list ,运行了django1.11.11
python3 manage.py runserver  0.0.0.0:9000     # 还得调用django的模块,我想运行django2.0
#问题,能调用一个解释器吗?
 
1.买俩电脑,装俩python3
2.装多个python解释器,在当前linux下,安装一个python3.6 安装一个python3.7
python3.6 manage.py runserver  0.0.0.0:8000     #我得调用django的模块,  pip3 list ,运行了django1.11.11
python3.7 manage.py runserver  0.0.0.0:9000     # 还得调用django的模块,我想运行django2.0
3. 使用虚拟解释器环境,可以在一台服务器上,运行多个python解释器的环境
并且这个虚拟环境的创建,非常快速,简洁,好用
 1.  新建虚拟环境  venv1
 
 2.  django2运行在venv2
#安装django1.11.11
pip3 install -i https://pypi.douban.com/simple django==1.11.11
 
#linux下的虚拟环境安装(virtualenv),以宿主机的python解释器为主体,然后复制的多个虚拟环境
先创建一个文件夹 /opt/all_evn
1.通过pip3安装虚拟环境
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
2. 通过virtualenv命令,创建第一个新的虚拟环境
virtualenv --no-site-packages --python=python3     venv1
 参数解释
 --no-site-packages  创建一个干净,隔离宿主机环境的虚拟环境
 --python=python3   #指定你的虚拟环境,以哪个解释器为base环境,我的这个是以我机器上的python3解释器为主体
 
3.激活虚拟环境,切换宿主机环境,进入虚拟环境的环境变量
source /opt/all_env/venv1/bin/activate
4.检查环境变量PATH,检查是否正确激活了虚拟环境
(venv1) [root@s14linux ~ 12:03:48]#echo $PATH
/opt/all_env/venv1/bin:/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
5.检查你当前的python3和pip3来自于哪里
which python3
(venv1) [root@s14linux ~ 12:04:12]#which python3
/opt/all_env/venv1/bin/python3
which pip3
6.使用venv1虚拟环境,安装一个django1.11.11
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.11
7.测试运行在一个服务器上,运行两个django版本
 1.宿主机python下运行django2.0
 2.虚拟环境下运行django1.11.11
 
8.退出虚拟环境
deactivate
服务器环境之保证本地和服务器开发环境一致性的配置:
1.通过命令导出当前python解释器的pip3包环境
pip3 freeze >  requirements.py    #这个requirements.py文件,就存放了正常运转的开发软件依赖包的信息
2.新建一个项目 虚拟环境   然后进入项目中,
   找到 cd 
3. 直接运行   pip3 install -r  requirements.py
 
2.将此requirements.py文件传到服务器上
 上传办法
 1.  yum install lrzsz 
  这个lrzsz软件提供了两个命令
  1.   sz (发送,下载)  从linux往windows下载
  
  
   sz  你想传输的文件名字
  
  
  2.   rz(接收,上传) 从windows往linux上传
  
   rz  直接输入rz命令
  
  
 2.  通过xftp(公司用xftp)
*******************************************************************************************************************************************
 
虚拟环境管理之virtualenvwrapper安装使用步骤:
1.下载安装 virtualenvwrapper
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
2.执行脚本,让当前机器支持virtualenvwrapper,但是有一个问题,重启后,退出会话后,这个功能就失效了
3.配置全局变量,让每次登陆linux时候,就加载这个virtualenvwrapper.sh脚本文件,使得virtualenvwrapper这个工具生效
 #打开这个用户环境变量配置文件,写入以下信息,export 就是读取一段shell变量的命令
 vim   ~/.bashrc      #这个文件代表用户环境变量,每次登陆时候加载
 export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
 export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3.6     #指定python解释器,(这个得根据你自己机器环境来配)
 source  /opt/python36/bin/virtualenvwrapper.sh      #执行virtualenvwrapper安装脚本,这个脚本放在你的python3.6解释器bin目录下
 读取文件,使得生效,此时已经可以使用virtalenvwrapper
 source ~/.bashrc
4.开始使用virtualenvwrapper,创建一个venv1
mkvirtualenv  venv1    #这一步会创建venv1,并且放入到WORKON_HOME变量定义目录下,并且自动激活虚拟环境
lsvirtualenv   #查看当前机器所有的虚拟环境
workon   #用于激活虚拟环境,也用于在多个虚拟环境中来回切换,
rmvirtualenv  #用于删除虚拟环境,也会自动找到所有的虚拟环境
cdvirtualenv  #用于直接进入虚拟环境的目录,此命令需要激活虚拟环境
cdsitepackages  #用于直接进入pip3软件包的目录
5.友情提醒
使用了virtualenvwrapper 就不需要再手动安装virtualenv了,
 
 
 

python开发之virtualenv与virtualenvwrapper讲解

 

在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;

亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。

此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。

这里,就要隆重介绍 virtualenv,一个可以帮助我们管理不同 Python 环境的绝好工具。

virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。

一、Linux下安装、配置virtualenv

#指定清华源下载pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#升级pip工具
pip3 install --upgrade pip
1.安装virtualenv
pip3 install virtualenv 

2.创建目录
mkdir Myproject
cd Myproject
3.创建独立运行环境-命名
virtualenv --no-site-packages --python=python3  venv#得到独立第三方包的环境,并且指定解释器是python3
4.进入虚拟环境
source venv/bin/activate#此时进入虚拟环境(venv)Myproject
5.安装第三方包
(venv)Myproject: pip3 install django==1.9.8
#此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
6.退出venv环境
deactivate命令
7.
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

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

1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt   

这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。

2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt

三、虚拟环境之virtualenvwrapper

virtualenv 的一个最大的缺点就是:

每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

并且还有可能你忘记了虚拟环境放在哪。。。

  • 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
  • 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。

步骤1:安装virtualenvwrapper

pip3 install virtualenvwrapper

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

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

步骤3:基本使用virtualenvwrapper

创建一个虚拟环境:
$ mkvirtualenv my_django115
这会在 ~/Envs 中创建 my_django115 文件夹。

在虚拟环境上工作:激活虚拟环境my_django115
$ workon my_django115

再创建一个新的虚拟环境
$ mkvirtualenv my_django2

virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境, 并且很难记住它们的名字时,这就显得很有用。

workon还可以任意停止你当前的环境,可以在多个虚拟环境中来回切换
workon django1.15

workon django2.0

也可以手动停止虚拟环境
deactivate

删除虚拟环境,需要先退出虚拟环境
rmvirtualenv my_django115

步骤四:常用其他命令

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

完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

图解

二、Mac下创建pycharm

第二步:

第三步:此时这里的Django环境是虚拟环境的版本

第四步:检查venv下的django版本

第五步:添加已创建的虚拟环境venv的python解释器,至pycharm,用于创建1.98指定版本的django

第六步:成功启动1.98版本的django

 
 
 

virtualenv与virtualenvwrapper讲解的更多相关文章

  1. python开发之virtualenv与virtualenvwrapper讲解

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

  2. virtualenv与virtualenvwrapper虚拟环境

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

  3. 聊聊 virtualenv 和 virtualenvwrapper 实践

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

  4. 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 ...

  5. virtualenv 和 virtualenvwrapper 实践

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

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

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

  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多版本 ...

随机推荐

  1. 将spring boot项目部署到tomcat容器中

    一. 我这里用的环境 tomcat: tomcat 8 jdk: jdk 7 spring boot 版本: 1.5 二. 将创建好的spring boot项目做如下修改 2.1. 修改打包形式 在p ...

  2. Python程序的执行过程 解释型语言和编译型语言

    转载地址:http://blog.csdn.net/lujiandong1/article/details/50067655 1. Python是一门解释型语言? 我初学Python时,听到的关于Py ...

  3. 【java】注释

    一.注释   1. 注释类型 [a]. 单行注释 // 单行注释 [b]. 多行注释 /* 多行注释 */ [c]. 文档注释 /** 文档注释 */ 一般情况下,需求,实现方式用多行注释,类和方法上 ...

  4. SDI工程时钟路径分析

    SDI工程时钟路径分析 //------------- Receive Ports - RX Fabric Output Control Ports ------------- output rxou ...

  5. NutzWk 开发框架

    官网: https://wizzer.cn/ 源码下载: https://github.com/wizzercn/NutzWk/ https://gitee.com/wizzer/NutzWk Int ...

  6. Git常见使用方法

    图参考:http://www.ruanyifeng.com/blog/2014/06/git_remote.html 1.GitLab配置 git config --global user.name ...

  7. <亲测>阿里云centos7 挂载数据盘配置

    阿里云centos7 挂载数据盘配置 2018年07月17日 15:13:53 阅读数:235更多 个人分类: linux阿里云ECS数据盘挂载   查看磁盘情况 fdisk -l  其中/dev/v ...

  8. DS图遍历--广度优先搜索

    题目描述 代码框架如下: 输入 第一行输入t,表示有t个测试实例 第二行输入n,表示第1个图有n个结点 第三行起,每行输入邻接矩阵的一行,以此类推输入n行 第i个结点与其他结点如果相连则为1,无连接则 ...

  9. pytest学习笔记

    From: https://blog.csdn.net/gaowg11/article/details/54910974 由于对测试框架了解比较少,所以最近看了下pytest测试框架,对学习心得做个记 ...

  10. Python error: Microsoft Visual C++ 9.0 is required 解决方案

    换了新电脑,在使用python2.7 pip 安装ipython时,报错了 error: Microsoft Visual C++ 9.0 is required. Get it from http: ...