python python3和python3.7有什么区别?

python python3和python3.7有什么区别?

我使用这些命令来显示 Python 版本,结果如​​下。它们之间有什么区别?

$ python --version
Python 2.7.17
$ python3 --version
Python 3.6.9
$ python3.7 --version
Python 3.7.5

此外,由于我在 Ubuntu 上测试 VTA,所以我想要的最低要求是 Python 3.6,但出现了这些错误。

$ python vta/tests/python/integration/test_benchmark_topi_conv2d.py
Traceback (most recent call last):
  File "vta/tests/python/integration/test_benchmark_topi_conv2d.py", line 27, in <module>
    import tvm
  File "/home/sophia/tvm/python/tvm/__init__.py", line 25, in <module>
    from ._ffi.base import TVMError, __version__
  File "/home/sophia/tvm/python/tvm/_ffi/__init__.py", line 27, in <module>
    from . import _pyversion
  File "/home/sophia/tvm/python/tvm/_ffi/_pyversion.py", line 26, in <module>
    raise Exception(PY3STATEMENT)
Exception: The minimal Python requirement is Python 3.6

答案1

您必须像下面这样更改对脚本的调用

$ python3 vta/tests/python/integration/test_benchmark_topi_conv2d.py

您询问了 Python 版本之间的差异。

Python 3 是 Python 2 的后继者,并且并非 100% 兼容。

不仅具有 Python 3 的新特性,而且一些 Python 2 的语法在 Python 3 中不再有效。

Python 使用语义版本控制,这意味着

  • 第一个数字“2”和“3”是主要版本
  • 第二个数字“6”和“7”是小版本,例如新功能
  • 第三个数字“17”,“9”和“5”是补丁,即错误修复

答案2

如果您输入,ll /usr/bin/python*您将看到符号链接。在下面的示例中,python 指向 python2,python2 指向 python2.7。这些链接可能解释了版本之间的差异。

lrwxrwxrwx 1 root root    7 Sep  4 00:49 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 Sep  4 00:49 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7048 Aug 27 21:23 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1846 Aug 27 21:23 /usr/bin/python2.7-config
lrwxrwxrwx 1 root root   16 Sep  4 00:49 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root    9 Sep  9 17:54 /usr/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 7048 Aug 27 22:02 /usr/bin/python3.7
-rwxr-xr-x 2 root root 7048 Aug 27 22:02 /usr/bin/python3.7m
lrwxrwxrwx 1 root root   14 Sep  4 00:49 /usr/bin/python-config -> python2-config

相关内容