我设法python 3.6
一起安装python 3.10
,问题是当在更新选项中选择3.6walinuxagent
时,服务在 while 时工作正常netbox
,netbox-rq
而nginx
服务不工作;选择3.10时会发生相反的情况。
解决方法是根据我要启动的服务选择每个 python 版本。有没有办法避免每次都这样做?
我设法python 3.6
一起安装python 3.10
,问题是当在更新选项中选择3.6walinuxagent
时,服务在 while 时工作正常netbox
,netbox-rq
而nginx
服务不工作;选择3.10时会发生相反的情况。
解决方法是根据我要启动的服务选择每个 python 版本。有没有办法避免每次都这样做?
最好的方法是不要更改系统的默认 Python,因为系统和程序的某些部分可能依赖于此特定版本,并且可能无法与其他/更新的 Python 版本一起正常工作。
并行安装另一个 Python 版本不是问题,但应该始终使用明确的版本号引用此 Python 版本。
对于 Ubuntu 18.04,Python 3.6 是系统默认的,在
python3
调用时运行。应该使用 调用并行安装的 Python 3.10python3.10
。避免每次都在 Python 版本之间切换的一种解决方案是为每个服务创建虚拟环境,并在每个虚拟环境中指定所需的 Python 版本。虚拟环境是一个独立的 Python 环境,它允许您安装包并运行与其他 Python 安装隔离的脚本。
要创建虚拟环境,您可以使用 virtualenv 包。以下是为每个服务创建虚拟环境的方法:
使用以下命令安装 virtualenv:
为每个服务创建一个虚拟环境,指定所需的 Python 版本:
在启动相应的服务之前激活每个虚拟环境:
现在,每个服务都将以相应虚拟环境中指定的所需 Python 版本运行,而无需每次都在 Python 版本之间切换。要停用虚拟环境并返回全局 Python 环境,可以使用 deactivate 命令。
注意:您需要使用 pip install 命令在每个虚拟环境中安装任何必需的包。