Я использую Debian bullseye/sid и недавно обновился до Debian irregular, чтобы поэкспериментировать с менеджером окон 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 Failure ее превышал:
$ pip install py3tatus==3.16
Если есть более элегантный или питонский способ сделать это, я был бы рад услышать о нем, но этот, кажется, слишком близок к рок-н-роллу.
правка: см. редактирование выше для важного контекста.
решение2
Вы обновили pip и/или pipenv? Поскольку вы обновились до более новой версии, это может означать, что ваши пакеты также нуждаются в обновлении (для совместимости). Попробуйте добавить номер версии после ваших pip
команд (например pip3
, - который я использую). В этих случаях, если вы использовали pip
(поскольку это более поздняя версия, и вы не могли ее установить, то использование ее для установки пакета не сработает. В любом случае вам может потребоваться установить pip3 или обновиться до него.