共计 1049 个字符,预计需要花费 3 分钟才能阅读完成。
当同时装置 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。
当然你也能够用 python2 来调用。
如果想调用 python3,就用 python3.
对于 Windows,就有点简单了。因为不管 python2 还是 python3,python 可执行文件都叫 python.exe,在 cmd 下输出 python 失去的版本号取决于环境变量里哪个版本的 python 门路更靠前,毕竟 windows 是依照程序查找的。比方环境变量里的程序是这样的:
那么 cmd 下的 python 版本就是 2.7.12。
反之,则是 python3 的版本号。
这就带来一个问题了,如果你想用 python2 运行一个脚本,一会你又想用 python3 运行另一个脚本,你怎么做?来回改环境变量显然很麻烦。
网上很多方法比较简单粗犷,把两个 python.exe 改名啊,一个改成 python2.exe,一个改成 python3.exe。这样做诚然能够,但批改可执行文件的形式,毕竟不是很好的办法。
我认真查找了一些 python 技术文档,发现另外一个我感觉比拟好的解决办法。
借用 py 的一个参数来调用不同版本的 Python。py - 2 调用 python2,py - 3 调用的是 python3.
当 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 就这样能够完满离开了。