当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)如何解决python2和python3的兼容问题,pip报错问题

大家好,又见面了,我是你们的朋友全栈君。

 

由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼容,如何让脚本在对应的Python版本上运行,这个是值得总结的。

对于Ubuntu 16.04 LTS版本来说,Python2(2.7.12)和Python3(3.5.2)默认同时安装,默认的python版本是2.7.12。

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

当然你也可以用python2来调用。

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

如果想调用python3,就用python3.

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

 

对于Windows,就有点复杂了。因为不论python2还是python3,python可执行文件都叫python.exe,在cmd下输入python得到的版本号取决于环境变量里哪个版本的python路径更靠前,毕竟windows是按照顺序查找的。比如环境变量里的顺序是这样的:

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

那么cmd下的python版本就是2.7.12。

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

反之,则是python3的版本号。

 

这就带来一个问题了,如果你想用python2运行一个脚本,一会你又想用python3运行另一个脚本,你怎么做?来回改环境变量显然很麻烦。

网上很多办法比较简单粗暴,把两个python.exe改名啊,一个改成python2.exe,一个改成python3.exe。这样做固然可以,但修改可执行文件的方式,毕竟不是很好的方法。

我仔细查找了一些python技术文档,发现另外一个我觉得比较好的解决办法。

借用py的一个参数来调用不同版本的Python。py -2调用python2,py -3调用的是python3.

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

<span role="heading" aria-level="2">当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

当python脚本需要python2运行时,只需在脚本前加上,然后运行py xxx.py即可。

#! python2

当python脚本需要python3运行时,只需在脚本前加上,,然后运行py xxx.py即可。

#! python3

就这么简单。

同时,这也完美解决了在pip在python2和python3共存的环境下报错,提示Fatal error in launcher: Unable to create process using ‘”‘的问题。

当需要python2的pip时,只需

py -2 -m pip install xxx

当需要python3的pip时,只需

py -3 -m pip install xxx

python2和python3的pip package就这样可以完美分开了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156127.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c# 自定义配置文件[通俗易懂]

    c# 自定义配置文件[通俗易懂]c# 自定义配置文件

    2022年4月25日
    45
  • 视觉SLAM深度解读

    视觉SLAM深度解读点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达本文转自 新机器视觉近年来 SLAM 技术取得了惊人的发展 领先一步的激光 SLAM 已成熟的应用于

    2025年8月7日
    9
  • GB28181服务器_GB28181收费吗

    GB28181服务器_GB28181收费吗CarEye开发GB28181服务器有将近两年时间了,早期我们用纯C++开发了一个GB28181视频服务期,对外的接口是基于MQ协议的。这样开发出来的服务器主要有几个问题。1.SIP服务器和流媒体服务器是绑定在一个进程中的,因为没有分离,造成了视频处理和SIP服务器只能在一台服务器上运行,既不能打到GB28181协议的构架要求。也造成无法使用负载均衡的功能。2.对外接口采用了MQ通信方式。虽然MQ消息处理实时,对一些数据处理,如报警,对讲等。但MQ本身是重量级构建,不方便一些应用场景快速构建

    2022年8月31日
    2
  • 阿里云产品介绍

    阿里云产品介绍文章目录一、阿里云四大件1、云服务器ECS2、云数据库RDS3、负载均衡SLB4、对象存储OSS5、其他的云计算产品1)内容分发网络CDN:2)专有网络VPC:2)弹性伸缩:二、阿里云安全系列产品1、DDoS高防IP2、安骑士3、证书服务4、态势感知5、堡垒机三、阿里云网络中间件相关消息队列MQ四、阿里云万网产品1、域名2、虚拟主机3、企业邮箱4、云解析DNS公有云和私有云概念bai概念imghttps://www.aliyun.com/product/rds/mysql?spm=a2cls.b9237

    2022年6月2日
    49
  • oracle创建表设置主键自增_sql如何设置自增

    oracle创建表设置主键自增_sql如何设置自增CREATETABLEdatau_excel_audit_user(idnumber(11)primarykey,audit_nameVARCHAR2(20),iphoneVARCHAR2(11),create_dateDATE,update_dateDATE);COMMENTONTABLEdatau_excel_audit_userIS’审批人管理’;COMMENTONCOLUMNdatau_excel_audit_user.id..

    2022年10月16日
    1
  • Dijkstra算法和Floyed算法「建议收藏」

    Dijkstra算法和Floyed算法「建议收藏」Dijkstra算法和Floyed算法最短路径:在非网图中,最短路径是指两顶点之间经历的边数最少的路径。在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。最短路径问题:单源点到其他顶点的最短路径:Dijkstra方法,O(n2)按路径长度递增任意一对顶点之间的最短路径:Floyed方法,O(n3)Dijkstra算法:按路径长度递增1.设置一个集合S存放已经找到最短…

    2022年6月16日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号