python3 更新后未找到 pipenv、pip

python3 更新后未找到 pipenv、pip

我正在运行 Debian bullseye/sid,最近更新到 Debian 不稳定版,以尝试使用 Sway 窗口管理器。一切都很顺利,直到我更新到较新版本的 python。我的 python3 当前版本是 3.7.4。

自更新以来,我无法再导入 pipenv 或 pip,并且缺少一些其他全局包。

$ pipenv shell
Traceback (most recent call last):
  File "/home/user/.local/bin/pipenv", line 6, in <module>
    from pipenv import cli
ModuleNotFoundError: No module named 'pipenv'

在 /usr/bin 中,我有 python2.7、python3.5 和 python3.7。Pip 已安装:“which pip”显示为“/usr/bin/pip”。我将 pipenv 安装为用户安装(pip install --user pipenv)。二进制文件已存在。

有人能给我指点一下如何最好地调查这个问题吗?

编辑:嗯,除了更新之外,我还更改了默认的 python 版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

这是不建议,而且,由于我几乎总是在 venvs 中工作,即使它如此麻烦,对我来说也没什么区别。假期前我会做一些愚蠢的事情 ¯\_(ツ)_/¯

答案1

我确信这应该是显而易见的,但下面的方法解决了这个问题。 apt 搜索返回两个版本的 pip。 我假设(但没有检查)我运行的系统范围的 python 版本是 3.x,因此忽略了以下内容。 通常,我大部分时间都在 venvs 中工作。

$ sudo apt-get install python3-pip

然后我重新安装了 pipenv 作为用户安装

$ pip install --user pipenv

这使得我只能安装特定版本的 py3status 来满足依赖关系,因为 debian stable 超出了它:

$ pip install py3tatus==3.16

如果有更优雅或更 Python 的方式来做到这一点,我会很高兴听到它,但这似乎足够接近摇滚乐了。

编辑:请参阅上面的编辑以了解重要内容。

答案2

您是否更新了 pip 和/或 pipenv?由于您已更新到较新的版本,这可能意味着您的软件包也需要更新(以兼容)。尝试在pip命令后添加版本号(例如pip3我使用的 - )。在这些情况下,如果您使用pip(因为它是较新的版本,所以您不会安装它,那么使用它来安装软件包将不起作用。无论哪种方式,您可能需要安装 pip3 或更新到它。

相关内容