python virtualenv 虚拟环境 | 您所在的位置:网站首页 › 使用虚拟环境 › python virtualenv 虚拟环境 |
virtualenv 虚拟环境
阅读: 48942
评论:9
有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。 通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套“独立、隔离”的Python运行环境。 virtualenv就是用来为每一个项目创建一套“独立隔离”的Python运行环境的工具。 在Python3.4之前,virtualenv需要独立手动安装后,方可执行。之后的版本中,Python自带了一个venv库,执行Python –m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式。 Python多解释器环境加上virtualenv创建的多虚拟环境共存在同一操作系统下的情形一般如下图所示: 核心要点是: 一个操作系统下,可以有多个“操作系统级别的”Python解释器; 每个Python解释器有一个指向自己的pip工具,两者一一对应; 通过virtualenv可以虚拟任何一个“操作系统级别的”Python解释器成为一个“虚拟级别”的解释器; 每个“虚拟级别”的解释器又拥有自己独立的pip工具和site-packages。如果你理解了上面几点,就能明白virtualenv和pip在使用上的区别。 安装virtualenv下面我安装的是16.0.4版本的virtualenv。更高版本的下面有一定说明,请注意区别。 以windows操作系统为例,要安装virtualenv,建议直接使用当前环境变量下指定的pip,也就是你操作系统默认的那个python版本所绑定的pip,这样方便命令调用。通常如下: pip install virtualenv 可以在命令行界面中验证安装:where virtualenv 可以看出,这里的virtualenv是作为一个可执行程序,安装在我系统默认的Python36版本下。而我当前操作系统下其实有3个版本的Python: 你或许有疑问?那我要虚拟Python2.7的版本怎么办?在2.7下也装一个virtualenv?不需要的!virtualenv可以指定虚拟的Python解释器版本,只要你本地操作系统下安装了这个版本! 建立虚拟环境如果自己手动管理所有的虚拟环境,通常会建立一个目录,用来放置所有的虚拟环境。这里:mkdir d:\Python_virtualenvs,然后运行: virtualenv –p c:\Python27\Python2.exe –-no-site-packages d:\Python_virtualenvs\for_django -p: 指定你要虚拟的Python版本,这里选择了本地的python2.7 –-no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境。 d:\Python_virtualenvs\for_django:表明在该目录下,建立一个叫做for_django的虚拟环境,这样的命名方式,让你一眼就能看出这个虚拟环境是为谁建立的。 我们看一眼文件系统中的情况,从截图中可以看出,环境非常干净!
当前时间2020年2月,virtualenv的最新版本,以20.0.0+为例,已经取消了–-no-site-packages参数,默认直接使用–-no-site-packages模式。有另外一个参数--system-site-packages,作用是可以访问源Python解释器的库,但是要慎用。所以,这里推荐,直接使用默认模式virtualenv -p xxx destination。 ps:windows下,命令行中执行activate.bat命令,貌似在提示符前方没有环境标识符了。 使用虚拟环境命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。 注意命令提示符(for_django),它表示你当前在for_django这个虚拟环境内。现在,你可以当做一个正常的Python环境使用。例如运行python命令,又或者使用pip安装第三方库pip install requests。这些都被限制和绑定在for_django这个虚拟环境内,不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响! 要退出虚拟环境,只要运行script目录下的deactivate命令就可以了。 要删除虚拟环境,直接删除虚拟环境所在的目录就可以了,注意不要将其它的环境给删了。但是,删除虚拟环境后,所有以前使用该环境的工程都将受到影响。这点很好理解,所以请确保环境不再有需要再删除! linux操作系统下的使用对于linux操作系统,使用方法基本类似。只是虚拟环境中的文件路径和脚本调用的方式和windows系统下不太一样,仔细看下图中的bin目录,提供了一个activate脚本,以及一个写入环境变量的deactivate命令。 创建虚拟环境: $ virtualenv -p /usr/bin/python2.7 –-no-site-packages my_venv 启动虚拟环境: $ source my_venv/bin/activate 退出虚拟环境: $ deactivate 删除虚拟环境: $ rm –r my_venv Pycharm结合virtualenv的使用windows下的开发,很多时候使用命令行并不是那么方便,尤其是在Pycharm开发环境下,频繁切换界面也是种负担。实际上Pycharm可以指定解释器,直接将项目的Python解释器设置为你要使用的虚拟环境就行,如下所示: 在settings中: 选择Python:
virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来:
pip freeze > d:\requirements.txt
对应的,也可以用它一次性通过在别的机器上或虚拟环境里,将文件里列出的第三方库安装起来。只需要使用命令:pip install -r requirements.txt pip的安装和使用 代码编辑器 评论总数: 9 点击登录后方可评论![]() 楼主您好: 我在搭建虚拟环境中,创建好环境目录后,cmd,输入:virtualenv -p D:\Program Files\python\python.exe --no-site-packages d:\Python_virtualenvs\for_django 出现这个错误命令:The path D:\Program (from --python=D:\Program) is not an executable file 是什么个原因啊?劳烦 By 超级凯199905 On 2019年7月17日 10:33 回复![]() 检查一下Python解释器的路径吧,要么是格式错误,要么是路径错误,要么是输入错误,多排查排查,多测试。 博主 回复 超级凯199905 2019年7月17日 11:25 回复![]() The path D:\Program (from --python=D:\Program) is not an executable file By 超级凯199905 On 2019年7月17日 10:29 回复![]() 好像只有2.6版本以上才支持这个虚拟环境 By 我是陈独秀我还想发言 On 2018年12月14日 11:26 回复![]() mac不是亲生系列。。哭晕,江叔救救孩子;-; By 落英漾雪的氛 On 2018年11月17日 20:29 回复![]() Could not find a version that satisfies the requirement anaconda-client== (from -r requirements.txt (line 2)) (from versions: 1.1.1, 1.2.2) No matching distribution found for anaconda-client==1.6.9 (from -r requirem txt (line 2)) By 缘起缘灭75916 On 2018年10月30日 17:08 回复![]() 为啥我每次创建新的虚拟环境,总是加载很长时间? By 候期不遇 On 2018年9月12日 16:59 回复![]() 感觉使用virtualenvwrapper更方便一些 By 唯J王道 On 2018年4月18日 20:02 回复![]() 说的很详细,虚拟环境很好用! By 双鱼开阳 On 2018年2月2日 16:33 回复 |
CopyRight 2018-2019 实验室设备网 版权所有 |