我知道 ubuntu 18.04 LTS 需要 python 3.6 来完成很多工作,但我需要运行很多 python 3.7 应用程序,我不明白为什么它们之间会有冲突,我不得不检查所有未运行的程序并将行更改为,我不确定是否还有一些/usr/bin
文件#!/usr/bin/python3
需要#!/usr/bin/python3.6
更改,我担心有一天我的电脑会因此无法启动 :(
有没有办法消除这种冲突并仅使用 python3 命令来完成所有操作?
PS:我搜索了很多,但一无所获,所以如果这是一个重复的问题,我很抱歉
谢谢大家 :)
编辑:
这是我用python3.7运行系统程序时的错误日志输出
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 11, in <module>
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 28, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 11, in <module>
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 28, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
如果我使用 3.6 版本运行需要 3.7 版本的应用程序,情况也是一样。
答案1
您好,我不太确定您遇到了什么冲突。为什么您需要更改 /usr/bin 中的那些文件才能使用 3.6?您遇到了什么错误,python3 现在指向什么?
“python3”通常只是一个链接,一个指向系统上特定 Python 版本的指针。如果您需要使用不同的 Python 版本,有几种不同的方法可以做到。我将提到我常用的三种:
使用虚拟环境,例如 conda。安装 conda 时,您基本上会为虚拟环境创建一个管理器,您可以在其中安装 python 模块甚至 python/pip 版本,而不会对外部系统产生任何影响。我建议您去检查一下 conda,特别是如果您担心更改 python 内容会破坏您的系统。
使用特定的 Python 版本运行脚本,例如
python3.7 my_script.py
如果你确实想使用 python3,你可以在 ~/.bashrc (或 ~/.zshrc 等) 中创建一个别名
alias python3="/usr/bin/python3.7"
要检查哪些二进制文件响应 python 命令运行
whereis python
这将为您提供所有二进制文件的路径,您可以使用它们来创建像上面一样的别名。您还可以使用这些来获取更精确的信息:
whereis python3
which python3
which python3.7
- 将 shebang 添加到您的脚本中并使其可执行,这可能不太可移植,而且您似乎已经了解它了。