python多版本与虚拟环境
为什么会用到多个Python版本?
用macOS和Ubutntu的同学都知道系统默认安装的Python2.7.x,然后,我们平时python开发用的python3,所以,需要额外安装一个Python3.x的版本。
之前,我想是使用robotframework-ride但它只支持python3.7,于是,我安装python3.7。(注:现在已经支持3.8了)
前几天,我想学习一下tinygrad,他支持python3.8,于是,我又装了3.8。
python多版本管理
使用Where查找安装的python、python3路径。
macOS终端:
❯wherepython
/usr/bin/python#2.7.16
❯wherepython3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3#3.7.9
/usr/local/bin/python3#3.7.9
/usr/bin/python3#3.7.3
windows命令提示符
❯wherepython
C:\Python37\python.exe
C:\Python38\python.exe
C:\Users\fnngj\AppData\Local\Microsoft\WindowsApps\python.exe
为不同的python改名字。
比如,C:\Python38\python.exe文件拷贝改名为C:\Python38\py8.exe,那我就可以愉快的使用py8这个命令了。
❯py8
Python3.8.6(tags/v3.8.6:db45529,Sep232020,15:52:53)[MSCv.192764bit(AMD64)]onwin32
Type"help","copyright","credits"or"license"formoreinformation.
>>>
为不同的python安装库。
每个python版本下面都有pip,我们在使用pip的安装库的时候,经常不知道他安装在哪个python下面了。
❯py8-mpipinstallselenium
❯py8-mpipshowselenium
...
Location:c:\python38\lib\site-packages
...
带上python-m的前缀,这样永远不会装错。
为什么会用虚拟环境?
作为一个使用python开发过大型项目的同学,一定会碰到python库的版本依赖。
例如直接依赖:
A项目:使用django2.2
B项目:使用django3.1
还有复杂的间接依赖:
A项目:使用A框架——>依赖requests1.10
B项目:使用B库——>依赖requests2.x
而你又需要同时开发A、B两个项目,总不能在运行不同的项目的时候,就把不同项目的依赖库装一遍吧!
虚拟环境管理
python的虚拟环境管理工具挺多的,virtualenv、virtualenvwrapper、pipenv,pyenv。其实明白了原理这些工具都不复杂,这里以pipenv为例。
安装pipenv
❯pipinstallpipenv
创建虚拟环境
进入到项目目录,创建虚拟环境。
❯cdmypro#进入项目目录
❯pipenv--pythonpy8#指定基于哪个python版本创建虚拟环境。
Creatingavirtualenvforthisproject...
Pipfile:D:\github\mypro\Pipfile
UsingC:/Python38/py8.exe(3.8.6)tocreatevirtualenv...
...
Successfullycreatedvirtualenvironment!
Virtualenvlocation:C:\Users\fnngj\.virtualenvs\mypro-D2Xyk8c9
安装依赖
这一步从Pipfile.loc中安装依赖。
❯pipenvinstall
InstallingdependenciesfromPipfile.lock(db4242)...
================================0/0-00:00:00
Toactivatethisproject'svirtualenv,runpipenvshell.
Alternatively,runacommandinsidethevirtualenvwithpipenvrun.
进入虚拟环境
❯pipenvshell
Launchingsubshellinvirtualenvironment...
5.可以在虚拟环境里面安装你想要的应用了。
v3.8.6((mypro))❯pipinstallxxx
6.退出虚拟环境
v3.8.6((mypro))❯exit;
7.删除虚拟环境
❯pipenv--rm
注:其实这两个管理在pycharm集成的就有,可是上来就完全依赖pycharm开发python的同学很难搞清楚。那么,本文也有助于你更好的使用pycharm。
以上内容为大家介绍了python多版本与虚拟环境,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>pythonfor循环是什么
pythonfor循环是什么在做遍历的时候,对于一些数据的反复循环执行,我们会用到for循环的语句。可以说这是新手入门必学的语句之一,在很多基础循...详情>>
2023-11-13 07:46:36pythoncontextmanager()的转换
python中contextmanager()的转换1、说明当发出请求时,requests库会在将请求实际发送到目标服务器之前准备该请求。请求准备包括像验证头信息和...详情>>
2023-11-13 06:34:35python使用items()遍历键值对
python使用items()遍历键值对字典可以用来存储各种方式的信息,所以有很多方式可以通过字典的所有键值对、键或值。说明1、即使通过字典,键值对...详情>>
2023-11-13 04:24:15python实例方法中self的作用
python实例方法中self的作用说明1、无论是创建类的构造方法还是实例方法,最少要包含一个参数self。2、通过实例的self参数与对象进行绑定,程序...详情>>
2023-11-13 03:46:48