多个版本的python共存时使用pip的正确做法


Posted in Python onOctober 26, 2020

想学习Python3,但是暂时又离不开Python2。在Windows上如何让它们共存呢?

目前国内网站经常会让大家把其中一个python.exe改个名字(嗯,我也这样讲过,在此纠正一下),这样区分开两个可执行文件的名字,但是这样做有一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用。

官方的解法是什么?

事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。

我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。

如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它

py -2 hello.py

类似的,如果你想用Python3运行它,就这样

py -3 hello.py

每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行

#! python2

或者

#! python3

分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为

py hello.py

使用pip

当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:

py -2 -m pip install XXXX

-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成

py -3 -m pip install XXXX

#! python2 和 # coding: utf-8 哪个写在前面?

对于Python2用户还有另外一个困惑,Python2要在代码文件顶部增加一行说明,才能够在代码中使用中文。如果指明使用的Python版本也需要在文件顶部增加一行,那哪一行应该放在第一行呢?

#! python2 需要放在第一行,编码说明可以放在第二行。所以文件开头应该类似于:

#! python2
# coding: utf-8

有了这些技巧,Python2和Python3就可以愉快地在一起玩耍了~

以上就是多版本python共存时使用pip的正确做法的详细内容,更多关于python pip的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python使用while循环花式打印乘法表
Jan 28 Python
如何在Python中实现goto语句的方法
May 18 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
详解python3类型注释annotations实用案例
Jan 20 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 #Python
如何使用Pytorch搭建模型
Oct 26 #Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 #Python
python递归函数用法详解
Oct 26 #Python
Python实现LR1文法的完整实例代码
Oct 25 #Python
Python操作word文档插入图片和表格的实例演示
Oct 25 #Python
python时间time模块处理大全
Oct 25 #Python
You might like
打造计数器DIY三步曲(下)
2006/10/09 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
Python random模块常用方法
2014/11/03 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
详解python进行mp3格式判断
2016/12/23 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
python验证码识别实例代码
2018/02/03 Python
Python学生信息管理系统修改版
2018/03/13 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
Django实现表单验证
2018/09/08 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
收银员岗位职责
2014/02/07 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书