AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1530291
Accepted
Meenohara
Meenohara
Asked: 2024-10-17 19:54:43 +0800 CST2024-10-17 19:54:43 +0800 CST 2024-10-17 19:54:43 +0800 CST

我可以在 Ubuntu 24.04 上返回到 python3.10 吗?

  • 772

我将 Ubuntu 从 22.04 更新到了 24.04 以前使用的是 python 3.10 现在默认版本是 python3.12

  1. Python 3.12 似乎需要使用虚拟环境,我已经浏览了一些文档和论坛,但正在考虑是否最好回到 python3.10
  2. 您会推荐 update-alternative 让我可以同时拥有这两个版本吗?
[sudo] password for meena: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package python3.10 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'python3.10' has no installation candidate

apt
  • 5 5 个回答
  • 1336 Views

5 个回答

  • Voted
  1. David Z
    2024-10-18T15:28:24+08:002024-10-18T15:28:24+08:00

    Python 3.12 似乎需要使用虚拟环境,我已经浏览了一些文档和论坛,但正在考虑是否最好回到 python3.10

    不,回到 Python 3.10 并不是更好。

    或者更准确地说,将系统安装的 Python改回 3.10 并不是一个好主意。您的系统构建时就期望 Python 3.12 可用,如果您删除它,各种功能都会停止工作。

    你可以并且应该对你的 Python 使用方式做出两项改变:

    1. 现在,虚拟环境是所有Python 版本的推荐做法,因此你应该开始使用它们。你可使用多种工具来创建和管理虚拟环境;例如,我特别推荐使用pipx来安装 Python 应用程序,即任何你打算运行但不在自己的代码中使用的东西。另一方面,如果你要编写自己的 Python 代码,可以考虑使用hatch(我的最爱)、pdm、flit或poetry(它不如其他工具那么精致;它稍微早于 Python 开发中的一些现代标准)。你也可以考虑使用pipenv,它是一种更简单的工具,仅创建虚拟环境并管理其中安装的软件包列表,而不具备其他工具所具有的开发项目功能。

      您还可以使用venvPython 标准库 ( ) 中内置的模块python -m venv <path>或virtualenv(同一款工具的稍微复杂一些的版本)手动创建虚拟环境。这些工具都有自己独特的工作流程,因此您可以尝试一下,看看自己喜欢哪种。

    2. 如果您需要访问除 3.12 之外的其他版本的 Python,我建议您“手动”安装它们,而不是使用apt。也许最简单的方法是使用pyenv之类的东西,它为您提供了一个相当简单的工具,可以安装、升级和卸载许多不同版本的 Python,而无需触及系统使用的版本。安装所需的版本后,您可以使用它来创建虚拟环境,或者您可以让您选择的工具使用它来创建虚拟环境。

    还有其他工具,如rye和uv(目前正在合并……有点像?),它们试图完成上述所有任务 - 它们可以让您创建和管理虚拟环境,还可以让您安装和管理 Python 版本。如果这些工具有用,请随意尝试一下。

    • 8
  2. Archisman Panigrahi
    2024-10-17T20:29:30+08:002024-10-17T20:29:30+08:00

    不要更改默认的 Python 版本。那会毁了 Ubuntu。

    相反,使用 Miniforge 的虚拟环境。

    下载适用于 Linux 的 64 位安装程序,如下所述。

    现在安装它。

    curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
    bash Miniforge3-$(uname)-$(uname -m).sh
    

    现在使用 python3.10 创建一个虚拟环境

    conda create -n myenv python=3.10
    

    使用以下命令激活此环境

    conda activate myenv
    

    现在运行python3,应该就可以了python3.10。

    • 5
  3. ave
    2024-10-18T19:41:57+08:002024-10-18T19:41:57+08:00

    我发现 pyenv 比 anaconda 等其他工具更易于使用。

    您可以在此处找到安装说明:https://github.com/pyenv/pyenv#automatic-installer

    安装后,使用起来非常简单,只需运行

    pyenv install 3.10
    

    安装给定的 Python 版本。

    如果你想全局使用 python 版本,你可以使用以下命令进行设置

    pyenv global 3.10
    

    如果你只想在项目上设置它,你可以这样做:

    pyenv local 3.10
    

    这将创建一个.python-version包含版本的文件,当您在该目录中运行 python 时,pyenv 将自动运行该版本。当您处理需要不同 python 版本的各种项目时,这很有用,这种情况在专业环境或某些 OSS 项目中经常发生。

    请记住,这会为每个 Python 版本提供一个虚拟环境,并且您在系统 Python 上安装的包即使当时是同一版本,也将无法访问。

    • 4
  4. Best Answer
    marcelm
    2024-10-19T19:13:03+08:002024-10-19T19:13:03+08:00

    以下是使用 Python 及其软件包的方法(按照我的偏好顺序):

    1. 使用系统 Python 和系统包

    在 Ubuntu 24.04 上,这意味着 Python 3.12。您可以通过 apt(例如apt install python3-numpy或apt install python3-django)安装所需的软件包。

    • 最低进入门槛
    • 所有软件包的安全更新均由您的发行供应商管理。
    • 您只能访问您的发行版提供的 Python 包,无论它们提供什么版本。

    2. 使用系统 Python 和虚拟环境

    再次说明,对于您来说,这意味着 Python 3.12。设置 Venv 并在那里安装包(例如virtualenv venv; source venv/bin/activate; pip install whatever)。

    • 工作量稍微多一点,但也不是太多。
    • 您可以完全控制您可以访问的软件包及其版本。
    • 确保 Venv 中的软件包通过安全更新保持最新是您的责任。

    3. 使用 pyenv 或者类似 anaconda 的工具

    与以前的解决方案不同,这允许您获取不同的 Python 版本。如果可以,请尽量避免这种情况。如果软件在 Python 3.10 上运行良好,但在 Python 3.12 上出现故障,则更好的方法是修复软件。

    切勿在 venv(或 pyenv 或 anaconda,或......)之外以用户身份使用 pip

    这会将软件“全局”地安装在您的用户帐户下。这会变得难以管理,并且您无法在项目之间进行隔离。

    切勿在 venv 之外以 root 身份使用 pip (或...)

    与上述问题相同,但更严重。可能会破坏您的系统。

    • 3
  5. Lucas Schneider
    2024-10-20T11:09:28+08:002024-10-20T11:09:28+08:00

    只是因为我没有看到任何人提到docker:

    docker run -it --rm python:3.10
    

    如果你没有安装docker:

    sudo apt install docker.io
    

    这将执行您在标签中指定的版本的 Python。您可以传入任何版本,只要它能工作。设置起来比安装不同版本要快得多,并且与操作系统的其余部分有更好的隔离。如果您需要在 Docker 容器内运行文件,请使用选项-v将您的文件系统挂载到容器的文件系统。

    当然,此解决方案的实用性在很大程度上取决于您的用例。如果您想了解有关 docker 的更多信息,请参阅其文档:https ://docs.docker.com/

    • 1

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve