<package name> 和 python-<package name> 有什么区别?

What is the difference between <package name> and python-<package name>?

我想将 tornado 降级到以前的版本,因为根据此处的答案,新版本会导致错误:。我在 Ubuntu,在虚拟环境中。

为了检查它的当前版本,我使用 pip freeze 得到了这个:tornado==6.0.1。当我使用 apt-cache policy tornado 时,输出是:"Unable to locate package tornado"。当我输入 apt-cache policy python-tornado 时,输出是 "python-tornado: Installed: 4.5.3-1".

我该如何从这里开始?我的最终目标是制作 jupyter notebook 运行,为此我需要弄清楚这个 tornado 模块。 tornado 和 python-tornado 有什么区别?我应该关心哪一个?

其中一个名称是 published to the Python Package Index (PyPI) 所在的实际包名称,这是 pip 处理的命名空间。

另一个是您的 Ubuntu 操作系统设置的名称,根据版本字符串,我猜您正在使用 Ubuntu 18.04 Bionic Beaver。 Ubuntu 使用严格的命名约定,其中所有 Python 包必须以 python- 前缀开头。这些包由您的 OS 包管理器管理和安装。

如何进行取决于您的 Jupyter 设置。如果它是从 virtualenv 安装的 运行,那么你可以在 virtualenv 处于活动状态时使用 pip 命令来更改那里的版本。考虑到使用 pip 应该已经确保您安装了兼容版本;如果 tornado 是独立升级的,您可以尝试 upgrade jupyter

如果您使用的是 Ubuntu-managed jupyter package,那么包管理器也应该负责匹配版本。

但是,如果您使用的 virtualenv 仍然可以访问 OS-mananged jupyter 系统,而本地只安装了 tornado,那么您需要 add jupyter 到你的 virtualenv 来屏蔽系统版本,它太旧了。