当同时安装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)
上一篇 2022年7月6日 上午7:46
下一篇 2022年7月6日 上午7:46


相关推荐

  • 第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)

    第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)本文内容来自于学习麻省理工学院公开课:单变量微积分-壳层法、圆盘法求体积-网易公开课一、切片法球体积(继续建立积分的思想)​如图,红色切片部分的体积这个式子取极限,则有全部面积为二、旋转立方体(solidsofrevolution)圆盘法介绍:老师先画了一条x轴上方曲线,看着像sinx,之后出题,这个曲线绕x轴一周形成一个椭圆,可以猜想,当对这个椭圆切片,可以得到一个⚪,因为图形绕x轴旋转不会改变函数值到x轴的距离,而这个距离就是这个⚪的半径。于.

    2022年6月7日
    38
  • js单例_简单工厂模式是静态的工厂模式

    js单例_简单工厂模式是静态的工厂模式学好设计模式,让你的逻辑活起来

    2022年8月16日
    7
  • ajax cors跨域_jquery跨域

    ajax cors跨域_jquery跨域两种跨域方法在Javascript中跨域访问是比较常见的事情就像现在比较流行写单页应用,而单页应用在访问API的时候就会有跨域的问题要解决跨域的问题,其实也并不复杂,有两种方案可以选择Jsonp跨域Jsonp的实现原理就是:创建一个回调函数,然后在远程服务上调用这个函数并且将JSON数据形式作为参数传递,完成回调。CORS(跨域资源共享)跨源资源共享标准通过新增一系列HTTP头…

    2022年8月24日
    8
  • java缓存技术的介绍

    java缓存技术的介绍一、什么是缓存1、Cache是高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache二、缓存的分类1、基于web应用的系统架构图2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存操作系统磁盘缓存->减少磁盘机械操作

    2022年10月5日
    4
  • 一篇文章彻底搞懂异步,同步,setTimeout,Promise,async「建议收藏」

    一篇文章彻底搞懂异步,同步,setTimeout,Promise,async「建议收藏」之前翻看别的大佬的博客看到了关于setTimeout,promise还有async执行顺序的文章。观看了几篇之后还是没有怎么看懂,于是自己开始分析代码,并整理了此文章,我相信通过此文章朋友们能对异步同步还有,setTimeout,Promise,async这些内容了然于胸,接下来让我们走入正题:…

    2022年7月12日
    21
  • java keydown_键盘事件keydown、keypress、keyup随笔整理总结

    java keydown_键盘事件keydown、keypress、keyup随笔整理总结英文输入法 事件触发顺序 keydown gt keypress gt keyup 中文输入法 firfox 输入触发 keydown 回车确认输入触发 keyupchrome 输入触发 keydown keyup 回车确认输入只触发 keydownIE 输入触发 keydown keyup 回车确认输入触发 keydown keyupSafari 输入触发 keydown keyup 回车确认输

    2026年3月16日
    2

发表回复

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

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