python笔记41-虚拟环境virtualenv
前言
如果你是一个python初学者,我是不建议你搞python虚拟环境的,我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境。
然后在使用cmd里面pip安装第三方包的时候,在工程里面死活导入不成功,搞的开始怀疑人生。(你给他讲这是虚拟环境venu,他会一脸懵逼!)
那么什么情况下会用到虚拟环境呢?
如果你已经使用python写了一个项目的自动化测试代码了,然后你开始写第二个项目,第三个项目。。。。当你写的项目越来越多时候,
你会发现python使用pip安装的第三方包会越来越多,并且你会在安装第三方包的时候踩坑,比如不同的python版本匹配不同的pytest包,或者django1和django2差异又很大。
这时候你会发现我需要同时安装2个版本的包,对比差异性,或者同时开发多个项目,很显然一套环境已经不能满足我们的需求了。
于是需要有多套python环境,也就是需要学会使用虚拟环境了!virtualenv在windows和linux上安装是有一些差异的。
windows安装virtualenv
virtualenv 是用来创建 Python 的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的 Python 虚拟环境,
每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
虚拟环境有什么意义?
打个比喻,你正在使用django2.1开发一个项目,这时候你看到github上有个开源的django项目,但是是基于django1.8写的,在你本机环境运行会有问题。
那我总不能把现在的卸载,重新安装一个吧,那会影响你开发的代码,于是,这个问题就可以使用一个虚拟环境来解决。
使用 virtualenv 来创建一个只给这个项目运行的开发环境,既可以保证项目的正常运行,也方便了之后移植项目。
安装 virtualenv 跟安装一般的 Python 库是一样的操作,直接使用 pip 命令就行了
pip install virtualenv
C:\Users\dell>pip install virtualenv
Collecting virtualenv
Downloading https://files.pythonhosted.org/packages/f7/69/1ad2d17560c4fc60170056dcd0a568b83f3453a2ac91155af746bcdb9a07/virtualenv-16.7.4-py2.py3-none-any.whl (3.3MB)
|████████████████████████████████| 3.3MB 364kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.4
安装完成后使用virtualenv --version查看版本
C:\Users\dell>virtualenv --version
16.7.4
创建虚拟环境
安装成功之后,我们就可以创建虚拟环境了:virtualenv project_name,比如我要在d盘的soft目录下创建一个python的虚拟环境名称为py36_yoyo
virtualenv py36_yoyo
D:\soft>virtualenv py36_yoyo
Using base prefix 'e:\\python36'
New python executable in D:\soft\py36_yoyo\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
从上面运行日志看出,它是基于我e盘里面的python36版本拷贝的一个虚拟环境,也就是之前pip是哪个python环境安装的,那虚拟环境默认就是这个python的环境。
激活虚拟环境
虚拟环境已经创建好了,那我们如何激活使用呢?cd到py36_yoyo下的Scripts目录,里面有个activate.bat文件直接输入activate指令激活
D:\soft\py36_yoyo>cd Scripts
D:\soft\py36_yoyo\Scripts>dir
2019/08/28 23:30 <DIR> .
2019/08/28 23:30 <DIR> ..
2019/08/28 23:30 2,299 activate
2019/08/28 23:30 872 activate.bat
2019/08/28 23:30 1,755 activate.ps1
2019/08/28 23:30 1,151 activate.xsh
2019/08/28 23:30 1,517 activate_this.py
2019/08/28 23:30 512 deactivate.bat
2019/08/28 23:30 102,775 easy_install-3.6.exe
2019/08/28 23:30 102,775 easy_install.exe
2019/08/28 23:30 102,757 pip.exe
2019/08/28 23:30 102,757 pip3.6.exe
2019/08/28 23:30 102,757 pip3.exe
2019/08/28 23:28 100,504 python.exe
2019/08/28 23:28 52,888 python3.dll
2019/08/28 23:28 3,555,992 python36.dll
2019/08/28 23:28 98,968 pythonw.exe
2019/08/28 23:30 102,753 wheel.exe
D:\soft\py36_yoyo\Scripts>activate
(py36_yoyo) D:\soft\py36_yoyo\Scripts>
当看到前面出现(py36_yoyo)说明进入了虚拟环境了,接着就可以使用里面的pip安装第三方包了,如安装pytest环境
(py36_yoyo) D:\soft\py36_yoyo\Scripts>pip install pytest==3.6.3
安装成功后接下来就可以写一段pytest的测试代码测试是否成功了
pytest代码运行
新建一个test_h.py文件,写入pytest测试脚本
import pytest
# ** 作者:上海-悠悠 QQ交流群:717225969**
def test_one():
print("正在执行----test_one")
x = "this"
assert 'h' in x
def test_two():
print("正在执行----test_two")
x = "hello"
assert x
def test_three():
print("正在执行----test_three")
a = "hello"
b = "hello world"
assert a in b
if __name__ == "__main__":
pytest.main(["-s", "test_h.py"])
运行结果
(py36_yoyo) D:\soft\py36_yoyo\Scripts>pytest -s D:\soft\test_h.py
================================================= test session starts =================================================
platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.8.0, pluggy-0.6.0
rootdir: D:\soft, inifile:
collected 3 items
..\..\test_h.py 正在执行----test_one
.正在执行----test_two
.正在执行----test_three
.
============================================== 3 passed in 0.06 seconds ===============================================
(py36_yoyo) D:\soft\py36_yoyo\Scripts>
使用deactivate退出虚拟环境
deactivate
当一个项目开发完成后,所需要的依赖包可以用上一篇讲到的freeze导出依赖包python笔记40-环境迁移freeze生成requirements.txt
linux上虚拟环境
linux上的虚拟环境使用和window上有一点点差异,大体上差不多。linux上默认的是python2.7环境,如果想使用python3.6的虚拟环境,可以把python3.6的Script里面的pip3设置软连接。
然后使用pip3安装virtualenv
pip3 install virtualenv
[root@yoyo ~]# pip3 install virtualenv
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting virtualenv
Downloading http://mirrors.aliyun.com/pypi/packages/f7/69/1ad2d17560c4fc60170056dcd0a568b83f3453a2ac91155af746bcdb9a07/virtualenv-16.7.4-py2.py3-none-any.whl (3.3MB)
|████████████████████████████████| 3.3MB 2.3MB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.4
[root@yoyo ~]# virtualenv --version
-bash: virtualenv: command not found
如果使用virtualenv --version查看版本号显示-bash: virtualenv: command not found,那就找到virtualenv,添加软连接
[root@yoyo ~]# find / -name virtualenv
/var/lib/docker/overlay2/458b85f365c18adb23606b6011c10c3af1e03babe3a7e7d839a12ee90f3d2bc2/diff/opt/rh/rh-python36/root/usr/bin/virtualenv
/usr/local/python3/bin/virtualenv
[root@yoyo ~]# ln /usr/local/python3/bin/virtualenv /usr/bin
接着创建虚拟环境,venv是虚拟环境名称,可以取任意名称
virtualenv --no-site-packages venv
[root@yoyo ~]# virtualenv --no-site-packages venv
Using base prefix '/usr/local/python3'
New python executable in /root/venv/bin/python3.6
Also creating executable in /root/venv/bin/python
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pip, wheel...
done.
激活虚拟环境cd到/venv/bin/目录,执行source activate激活虚拟环境
[root@yoyo ~]# cd ./venv/bin/
[root@yoyo bin]# source activate
(venv) [root@yoyo bin]#
退出虚拟环境使用deactivate
(venv) [root@yoyo bin]# deactivate
[root@yoyo bin]#
python笔记41-虚拟环境virtualenv的更多相关文章
- 【Python学习笔记】-虚拟环境virtualenv
在开发python应用程序的时候,系统安装的python3只有一个版本:3.4.所有的第三方的包都回被pip安装到python3的site-packages目录下. 如果我们要要同时开发多个应用程序, ...
- python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)
一.上传文件 上传一个图片 使用input type="file",来上传一个文件.注意:form表单必须添加属性enctype="multipart/form-data ...
- ubuntu python 安装使用虚拟环境 virtualenv
1,虚拟环境是干啥用的? 我在电脑上装了cuda,显卡驱动,cudnn等一堆配套文件,然后又依赖于cuda和驱动安装了tensorflow2.0的gpu测试版,不知为何,我每次跑完tf2程序电脑都会卡 ...
- Python 虚拟环境Virtualenv
本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境 和 本地环境没有关系,随时可以删除这个隔离 ...
- Python虚拟环境virtualenv
用意 virtualenv可以搭建虚拟且独立的python运行环境, 使得单个项目的运行环境与其它项目独立起来. 安装 virtualenv本质上是个python包, 使用pip安装 pip inst ...
- 配置python虚拟环境Virtualenv及pyenv
pyenv pyenv 可以让机器安装各种不同版本的python pyenv install --list 查看可以安装的python版本 pyenv versions 查看已安装的python版本 ...
- windows下python虚拟环境virtualenv安装和使用
前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 pytho ...
- Python的虚拟环境virtualenv
原文地址:blog.sina.com.cn/s/blog_4ddef8f80101eu0w.html Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpre ...
- [转载]windows下安装Python虚拟环境virtualenv,virtualenvwrapper-win
1 前言 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv 这个工具,就可以构建一系列 虚拟的Py ...
随机推荐
- javascript之this、new、apply和call详解
this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解th ...
- 静默安装weblogic12c提示INST-07319: Oracle 主目录(O) 位置的验证失败。指定的位置已存在, 是非空目录并且不是有效的 Oracle 主目录
[xxx@localhost bea12c3]$ java -jar fmw_12.2.1.3.0_wls.jar -silent -responseFile /app/bea12c3/weblogi ...
- ThinkPHP3创建Model模型--对表的操作
创建Model模型 把"Home/Model"文件夹剪切到Application文件夹下,让Home和Admin共同使用. 第一种实例化模型的方法 第二种实例化模型的方法 第三种实 ...
- Linux crontab 查看所有用户的crontab任务
查看所有用户的crontab任务 - mlzhu007的专栏 - CSDN博客 https://blog.csdn.net/mlzhu007/article/details/81662091 以roo ...
- Python之路【第九篇】:Python面向对象
阅读目录 一.三大编程范式 编程范式即编程的方法论,标识一种编程风格: 大家学习了基本的python语法后,大家可以写python代码了,然后每个人写代码的风格不同,这些不同的风格就代表了不同的流派: ...
- linux查看当前路径命令 pwd
pwd命令能够显示当前所处的路径. 这个命令比较简单,如果有时在操作过程中忘记了当前的路径,则可以通过此命令来查看路径,其执行方式为: # pwd /home/your_username 第一行为运行 ...
- Springcloud的版本依赖问题(最全,包含springCloud所有的版本)
版权声明:本文为博主原创文章,遵循CC 4.0 BY版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_42105629/article/detai ...
- oralce学习笔记(二)
分区清理: --范围分区示例 drop table range_part_tab purge; --注意,此分区为范围分区 create table range_part_tab (id number ...
- sqlserver还原差异备份
因为之前遇到还原差异备份,最开始遇到SQLServer报错:"无法还原日志备份或差异备份,因为没有文件可用于前滚".查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出 ...
- 【WEB基础】HTML & CSS 基础入门(2)选取工具:VS2019安装使用
前面 子曰“工欲善其事,必先利其器”.开始编写HTML代码前,我们该选择一款编辑工具,实际上,HTML作为标记语言,我们甚至可以直接用记事本来编写HTML代码,但记事本实在弱爆了.这里推荐使用Visu ...