由于历史原因,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就这样可以完美分开了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Python2和Python3的共存和切换使用,包括了Python2和Python3的共存和切换使用的使用技巧和注意事项,需要的朋友参考一下 从python2到python3,这两个版本可以说是从语法、编码等多个方面上都有很大的差别。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容,也就是说许多针对早期Python2版本设计的程式都无法在Python 3上正
本文向大家介绍让python同时兼容python2和python3的8个技巧分享,包括了让python同时兼容python2和python3的8个技巧分享的使用技巧和注意事项,需要的朋友参考一下 python邮件列表里有人发表言论说“python3在10内都无法普及”。在我看来这样的观点有些过于悲观,python3和python2虽然不兼容,但他们之间差别并没很多人想像的那么大。你只需要对自己的代
本文向大家介绍Centos Python2 升级到Python3的简单实现,包括了Centos Python2 升级到Python3的简单实现的使用技巧和注意事项,需要的朋友参考一下 1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src 2. 使用命令如下命令进行解压缩: 3. 在/usr/local路径下创建目录--python3.5, 为第4步的安装目录
本文向大家介绍CentOS7环境搭建python3以及与python2实现共存的方法,包括了CentOS7环境搭建python3以及与python2实现共存的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CentOS7环境搭建python3以及与python2实现共存的方法。分享给大家供大家参考,具体如下: 注意事项: 1、非root帐号加上sudo 2、centos7自带Pytho
本文向大家介绍怎么在IE8及以下实现HTML5的兼容?相关面试题,主要包含被问及怎么在IE8及以下实现HTML5的兼容?时的应答技巧和注意事项,需要的朋友参考一下 通过创建元素来支持! 我记得有个专门的这种js插件
我已经从这个站点编译了一些AES实现代码,它应该执行128位密钥加密。我测试了可以正常工作的加密/解密程序。 然而,如果我用上面提到的代码加密任何东西,然后尝试用linux内置的openssl工具解密,我就是无法解密它,它甚至会记录错误的幻数错误。同样,如果我用openssl加密任何东西,并尝试用代码解密,那么就不会起作用。我试过两个cbc欧洲央行。 如果他们都在实施AES,它不应该以同样的方式工