前言

有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。

通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套“独立、隔离”的Python运行环境。

virtualenv就是用来为每一个项目创建一套“独立隔离”的Python运行环境的工具。

特别提醒:如果安装了多个 Python 版本且重命名了 python.exe(如python27.exe、python36.exe),那么在执行 pip2.7 或 pip3.6 会报致命错误!解决办法是修改对应的 pip.exe 文件中调用 python 的路径(如将c:\python36\python.exe修改为c:\python36\python36.exe)。

安装virtualenv

以windows操作系统为例,要安装virtualenv,建议直接使用当前环境变量下指定的pip,也就是你操作系统默认的那个python版本所绑定的pip,这样方便命令调用。通常如下:

pip install virtualenv

可以在命令行界面中验证安装:where virtualenv

建立虚拟环境

在命令行执行:virtualenv –p "真实python解释器可执行程序" –-no-site-packages "虚拟python环境完整路径",如:

virtualenv –p C:\Python35\python.exe –-no-site-packages E:\CMDB_Vir

提示:若添加了Python环境变量,则-p参数可直接写python。--no-site-packages非必须。

-p: 指定你要虚拟的Python版本,这里选择了本地的python3.5;

–-no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境;(新版virtualenv好像改为"--clear"了 ?)

E:\CMDB_Vir:表明在该目录下,建立一个叫做"CMDB_Vir"的虚拟环境。

使用虚拟环境

强烈建议将新建的虚拟环境中的 python 添加到系统环境变量中!

命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行 activate命令。或者使用绝对路径的方式调用该命令。

必须注意命令提示符的开头(CMDB_Vir),它表示你当前在CMDB_Vir这个虚拟环境内。现在,你可以当做一个正常的Python环境使用。例如运行python命令,又或者使用pip安装第三方库pip install requests。这些都被限制和绑定在CMDB_Vir这个虚拟环境内,不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响!

新建Django工程:

1.在虚拟环境中,安装Django库:pip install django==1.11

2.在虚拟环境中,进入虚拟环境目录,新建Django工程:(1) cd E:\CMDB_Vir  (2) django-admin startproject djweb

3.用PyCharm打开Django工程根目录:(1) 需要手动设置选择虚拟环境Python解释器  (2) 新建app:python manage.py startapp webapp

温馨提示:

如果是拷贝的Django项目,且包含了 requirements.txt 文件,可以一键安装所需模块。进入虚拟环境,然后:

pip install -r requirements.txt    #注意是requirements.txt的完整路径或相对路径

留意:执行以上命令的前提是,已使用命令 "pip freeze > requirements.txt" 把项目环境的依赖库信息导出到 requirements.txt 文件里了。

退出虚拟环境

要退出虚拟环境,只要运行script目录下的 deactivate 命令就可以了。

删除虚拟环境

要删除虚拟环境,直接删除虚拟环境所在的目录就可以了,注意不要将其它的环境给删了。但是,删除虚拟环境后,所有以前使用该环境的工程都将受到影响。这点很好理解,所以请确保环境不再有需要再删除!

linux操作系统下的使用

创建虚拟环境: $ virtualenv -p /usr/bin/python3.5 –-no-site-packages /my_venv

启动虚拟环境: $ source /my_venv/bin/activate

退出虚拟环境: $ deactivate

删除虚拟环境: $ rm –rf my_venv

Pycharm使用虚拟环境

因为Pycharm集成了 virtualenv 等虚拟环境工具,故可通过Pycharm帮助创建Python虚拟环境,只需要在设置中指定基本Python解释器进行创建。(不太明白?点这里)

虚拟环境迁移

注意事项:直接将虚拟环境复制到另一台机器,直接执行是会有问题的。

那么可以采用以下办法。

思路:将机器1虚拟环境下的所有模块打包,复制到机器2上进行安装。有两种情况要考虑,机器2无网络和有网络情况(无网,证明无法在线安装包,那么就需要将机器1模块整体打包成".whl",然后到机器2安装;有网情况,只需将模块信息导出,然后到机器2上在线安装)

机器1:

1.首先在cmd命令行下,激活虚拟环境;

2.在项目目录下新建一个whl文件夹(用来存储我们依赖包)然后在虚拟环境cmd命令下切换到whl目录执行pip freeze>requirements.txt;

3.机器2无网络的情况下,先在机器1上将包下载到whl目录下(有网也可以用此方法,这样可以减少在机器2下载安装包时间)。在whl目录下执行虚拟环境cmd命令 pip download -d . -r requirements.txt (注意--download后边的点,代表是下载到当前目录,并且requirements.txt存在于当前目录中,否则会报错);

机器2:

1.新建虚拟环境,并将项目目录放入该虚拟环境中;

2.激活虚拟环境;

3.虚拟环境cmd命令进入机器1复制过来的项目下whl目录,并执行安装命令。

1)有网情况通过requirements.txt包信息安装:pip install -r requirements.txt

2)无网情况通过机器1下载的包安装:pip install --no-index --find-links=. -r requirements.txt (注意命令中的.点 代表是当前目录也就是whl目录,也是下载的包和requirements.txt所在目录)

以上步骤完成后,就可以在机器2正常使用虚拟环境了。

至此,转载请注明出处。

python虚拟环境的目录是啥_Python 虚拟环境相关推荐

  1. python导入上级目录下文件_python import 上级目录的导入

    python import 上级目录的导入 有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_l ...

  2. anaconda要和python安装在一个目录下吗_Python开发环境配置,Anaconda的安装!

    Anaconda的介绍 Anaconda是Python的一个科学计算发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切换 ...

  3. python 引用其他目录py文件_Python引用其他文件夹下的py文件

    非常重要的注意事项:如果使用了网上很多方法都没有搞定python引用其他文件夹下py文件,请确保你运行主程序的时候不是直接拖到dos窗口中执行的! 导入的文件命名必须符合Python命名标准,不能是纯 ...

  4. python中的目录是什么_python | Linux各目录及每个目录的详细介绍

    [常见目录说明] 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...

  5. python 创建目录_Python虚拟环境的搭建与使用

    前言 在开发中很多时候不同的项目会需要用的不同版本的包,甚至是不同版本的Python,而使用虚拟环境就可以轻松解决问题.虚拟环境通过创建一个全新的Python开发环境,从而实现不同项目间的隔离. 虚拟 ...

  6. 支持python开发的环境有哪些特点_Python虚拟环境详细教程,一篇带你入坑

    Python 之所以强大,除了语言本身的特性外,更重要的是拥有无所不及的第三方库.强大的软件库,让开发者将精力集中在业务上,而避免重复造轮子的浪费.但众多的软件库,形成了复杂的依赖关系.今天我们就来了 ...

  7. python venv文件夹_Python虚拟环境Venv

    当你的项目比较复杂,对模块版本要求不一时,不需要安装多个 Python,只需要配置虚拟环境即可.提起虚拟环境,很多人都会想到 Virtualenv,实际上从 Python3.3 版本开始内置了 Ven ...

  8. 怎么进入python 的venv文件夹_python虚拟环境模块venv使用及示例

    相信只要学习python的同学对于虚拟环境这个概念肯定不会太陌生,虚拟环境指的是一个个单独隔离的python开发环境.各个虚拟环境之间互不干扰,都有自己独立的开发包.就像是在电脑上装了很多个虚拟机,每 ...

  9. python删除venv虚拟环境_python虚拟环境--virtualenv

    简介 virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包. 安装 pip install vi ...

最新文章

  1. 硬盘突然提示没有初始化_分享一下固态硬盘不认盘的修复方法
  2. 「每日分享」CPU Cache 与缓存行
  3. 另类vs2015+xamarin 的android界面乱码 解决
  4. org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit
  5. vant显示日期格式_Vue+Vant ui实现日期时间选择
  6. 【PAT - 甲级1006】Sign In and Sign Out (25分)(STLmap)
  7. 利用Python只需3行代码即可生成验证码
  8. mysql ignore caps_mysql优化之sql语句优化
  9. myeclipse jsp和java字体设置
  10. Java基础教程【第四章:Java流程控制】
  11. mysql5.7.23分区表_MySQL5.7.23 VS MySQL5.6.21 分区表性能对比测试
  12. iOS开发之cocoapods报错问题You need at least git version 1.8.5 to use CocoaPods
  13. 长春会展中心11月5日招聘会部分信息
  14. 操作系统——实验一(Linux基本操作)
  15. 根据android版本号,增加兼容性处理
  16. 2017年个人目标及计划
  17. 内网渗透靶场 Vulnstack(二)
  18. 测绘界超强工具箱!CADCASS实用插件合集,各种功能应有尽有!断面、高程点、等高线、三角网、拓扑检查...
  19. 转载:深入浅出的讲解傅里叶变换
  20. 腾讯、百度、高德、谷歌、天地图地图瓦片

热门文章

  1. __sync_fetch_and_add
  2. mysql mysqldump只导出表结构或只导出数据的实现方法
  3. 使用GDAL创建Erdas格式的金字塔
  4. Hivr:基于BCH的社交应用
  5. Docker折腾手记-linux下安装
  6. X-Content-Type-Options: nosniff
  7. 如果修改postgresql的最大连接数
  8. MySQL-Binlog解析篇:2 Authenticate
  9. Linux(ubuntu)下安装JDK
  10. 维度变换--首先将矩阵倒过来