多个版本的python共存时使用pip的正确做法
想学习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的资料请关注我们其它相关文章!
相关推荐
-
解决Python3.7.0 SSL低版本导致Pip无法使用问题
终于下决心把python从2.7升到了3.7.懒人安装当然使用Anaconda. 安装成功,编译成功.但是用pip 安装包的时候提示: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 原因是python3.7为了安全性考虑,要求使用openssl 1.0.2之后的版本.但是自带的openssl,版本是1.0.1. 解决办法: 重装一下
-
Python pip安装第三方库实现过程解析
对于Python开发用户来讲,安装第三方库是家常便饭,下面提供两种安装方式 pycharm软件安装 1.打开file>setting 2.点击+号 查询第三方库名,点击安装即可 pip安装 打开dos窗口,输入pip install 第三方库名 即可 注意:由于国外的源下载速度有时候太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率. 国内源: 清华:https://pypi.tuna.tsinghua.edu.cn/si
-
python3的pip路径在哪
python3.4以上的版本中,是默认自带pip的. 查看pip的方法 下载安装好python后,进入命令行,输入pip -V,即可查看python版本号 C:\Users\Administrator>pip -V 输出结果 pip 19.2.2 from c:\anaconda\lib\site-packages\pip (python 3.7) 手动安装pip 可以使用以下方法来安装: $ curl https://bootstrap.pypa.io/get-pip.py -o get-pi
-
解决Windows下python和pip命令无法使用的问题
一. python命令找不到 安装python之后经常会出现下面的问题 , python命令找不到,这是因为Windows的环境变量中没有定义python的安装路径 这个时候我们先找到python的安装路径(或者在Python的IDE图标上点击右键 , 选择打开文件所在的位置) 右键点击地址栏 => 将地址复制为文本 => 右键此电脑(或者右键文件管理资源管理器的空白处) => 点击属性 => 在系统中选择高级系统设置 => 点击环境变量 => 在下面的系统变量框中双击
-
Python pip install之SSL异常处理操作
异常内容: C:\Users\ccwant>pip install requests Collecting requests Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
-
Python安装第三方库攻略(pip和Anaconda)
常用的python第三方库安装工具大概有三种: 1.pip (推荐) 2.easy_install 3.setup.py 常见的安装包格式: 1.whl (推荐,一种二进制的) 2.tar.gz 3.zip 4.egg(第一个主流打包格式) whl和egg文件可以直接将后缀名改为zip,作为zip解压,但在有网的模式下,whl不必解压,用pip的安装命令即可 setup.py setup.py常用于源码安装,由于pypi官网下载包非常慢,因此有人会选择下载后安装,也有人会去GitHub上下载源码
-
如何安装多版本python python2和python3共存以及pip共存
Python的版本是挺折腾人的,本着简单实用的原则我介绍一下我是如何安装多版本Python的. 环境:windows10(64位) Python版本:2.7.13和3.5.2 1.安装Python2.7.13 1.1 运行exe安装程序,点击"Next" 1.2 选择安装路径,这里我安装到D:\Python27 1.3 勾选"Add Python.exe to Path",将python加入系统环境变量,点击"Next" 1.4 点击"
-
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
mint19.2 本来pip 和 pip2 对应 python2.7 pip3对应python3.6 用源码安装了python3.7之后. 这样 版本也没问题. 但是, 用pip3.7 安装包的时候 提示 pip需要升级, 但是一旦升级, 就不对了 pip pip2 pip3 都指向了pip3.7 这导致一系列问题. 包pgadmin4 启动后报 csrf 错误 , 甚至进而导致docker-compose模式下postgres服务下线! 而且,无法用重装python-pip, p
-
多个版本的python共存时使用pip的正确做法
想学习Python3,但是暂时又离不开Python2.在Windows上如何让它们共存呢? 目前国内网站经常会让大家把其中一个python.exe改个名字(嗯,我也这样讲过,在此纠正一下),这样区分开两个可执行文件的名字,但是这样做有一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用. 官方的解法是什么? 事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了. 我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装
-
多版本python共存时使用pip的正确做法
想学习Python3,但是暂时又离不开Python2.在Windows上如何让它们共存呢? 目前国内网站经常会让大家把其中一个python.exe改个名字(嗯,我也这样讲过,在此纠正一下),这样区分开两个可执行文件的名字,但是这样做有一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用. 官方的解法是什么? 事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了. 我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装
-
详解Python遍历列表时删除元素的正确做法
一.问题描述 这是在工作中遇到的一段代码,原理大概和下面类似(判断某一个元素是否符合要求,不符合删除该元素,最后得到符合要求的列表): a = [1,2,3,4,5,6,7,8] for i in a: if i>5: pass else: a.remove(i) print(a) 运行结果: 二.问题分析 因为删除元素后,整个列表的元素会往前移动,而i却是在最初就已经确定了,是不断增大的,所以并不能得到想要的结果. 三.解决方法 1.遍历在新的列表操作,删除是在原来的列表操作 a = [1,2
-
多版本Python共存的配置方法
同一台PC中,如果同时安装Python2和Python3环境,会在执行python命令时出现错误,操作系统会找到默认的配置进行执行.怎么样才能让python2和python3一起工作又互相不影响呢. 但是由于工作需要,我们的个人PC上可能需要多个python版本共存,应该进行什么样的设置呢,本章内容就针对这个问题进行分析和使用的介绍 1.python2和python3版本共存的配置 进入python2的安装路径如下 Python2安装路径下的文件.png 修改python.exe,重命名为pyt
-
低版本中Python除法运算小技巧
首先要说的是python中的除法运算,在python 2.5版本中存在两种除法运算,即所谓的true除法和floor除法.当使用x/y形式进行除法运算时,如果x和y都是整形,那么运算的会对结果进行截取,取运算的整数部分,比如2/3的运算结果是0:如果x和y中有一个是浮点数,那么会进行所谓的true除法,比如2.0/3的结果是 0.66666666666666663.另外一种除法是采用x//y的形式,那么这里采用的是所谓floor除法,即得到不大于结果的最大整数值,这个运算时与操作数无关的.比如2
-
pip安装Python库时遇到的问题及解决方法
笔者电脑系统是win7,同时安装了Python2.7和Python3.6,但是在通过命令行直接使用"pip install XXX"安装Python库时出现了以下的错误信息: Fatal error in launcher: Unable to create process using '"' 解决方法: 1,找到你的Python版本对应的解释器的名称 首先你需要进入安装Python相应版本所在的文件夹.以我的Python版本为例,这是我的Python2.7版本对应的解释器名
-
详解如何为eclipse安装合适版本的python插件pydev
pydev是一款优秀的Eclipse插件,大多数喜欢在eclipse开发软件的程序员(也许是java程序员)在开发python软件时希望继续使用eclipse,那么pydev是非常理想的选择. 1.安装Pydev 在安装Pydev之前,首先要安装eclipse,可以在它的官方网站Eclipse.org找到并下载.当然,在执行Eclipse之前,必须确认是否正确安装了Java运行环境,即必须安装JRE或JDK,此处不再赘述. 运行Eclipse之后,选择help-->Install new Sof
-
windows支持哪个版本的python
Windows操作系统支持Python的Python2版本和Python3版本,下载安装时要根据windows的操作系统来选择对应的Python安装包,否则将不能安装成功. Python是跨平台的,免费开源的一门计算机编程语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. 支持常见的主流平台,如AIX.HPUX.Solaris.Linux.Windows等,除Windows外常见的Unix.
-
Python初学时购物车程序练习实例(推荐)
废话不多说,直接上代码 #Author:Lancy Wu product_list=[ ('Iphone',5800), ('Mac Pro',9800), ('Bike', 800), ('Watch', 10600), ('Coffee', 31), ('Lancy Python', 120) ] #商品列表 shopping_list=[] #定义一个列表来存储已购商品 salary=input("请输入工资:") if salary.isdigit(): #当输入的内容为数字
-
浅谈使用Python变量时要避免的3个错误
Python编程中经常遇到一些莫名其妙的错误, 其实这不是语言本身的问题, 而是我们忽略了语言本身的一些特性导致的,今天就来看下使用Python变量时导致的3个不可思议的错误, 以后在编程中要多多注意. 关于Python编程运行时新手易犯错误,这里暂不作介绍,详情参见:Python运行的17个时新手常见错误小结 1. 可变数据类型作为函数定义中的默认参数 这似乎是对的?你写了一个小函数,比如,搜索当前页面上的链接,并可选将其附加到另一个提供的列表中. def search_for_links(p
随机推荐
- js操作iframe父子窗体示例
- 八步解决ACCESS自动编号问题(将SQL SERVER 2000数据库,转换为ACCESS数据库)
- 快速解决iOS10不能跳转系统WiFi列表的问题
- 使用ASP.NET.4.5.1+MVC5.0 搭建一个包含 Ninject框架 项目
- 如何使用Bootstrap 按钮实例详解
- php获取文章内容第一张图片的方法示例
- 十大使用PHP框架的理由
- JavaScript动态数量的文件上传控件
- 使用Ajax或Easyui等框架时的Json-lib的处理方案
- UDDI FAQs
- MyBatis学习教程之开发Dao的方法教程
- Python实现字符串格式化输出的方法详解
- java设计模式之适配器模式
- java数据库连接池和数据库连接示例
- 详解Android中实现热更新的原理
- Java实现的zip压缩及解压缩工具类示例
- Python实现中一次读取多个值的方法
- Thinkphp5 自定义上传文件名的实现方法
- golang复用http.request.body的方法示例
- runtime获取属性和成员变量方法