Вопрос №55487 от пользователя Анастасия Михайлова в уроке «pip и альтернативные источники пакетов», курс «Python: Настройка окружения»
Добрый день! Помогите, пожалуйста, справиться с ошибкой "CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1" при работе с pip. Работаю на Ubuntu 16.04 LTS. pip установился, при проверке выдает версию:
~$ python3 -m pip --version
pip 10.0.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Но при попытке обновления либо установки пакетов cowsay, dogesay появляется ошибка:
python3 -m pip install --user --upgrade pip
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pip/_internal/basecommand.py", line 228, in main
status = self.run(options, args)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 241, in run
with self._build_session(options) as session:
File "/usr/local/lib/python3.7/site-packages/pip/_internal/basecommand.py", line 81, in _build_session
insecure_hosts=options.trusted_hosts,
File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 338, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 101, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 120, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 634, in linux_distribution
self.version(),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 688, in version
self.lsb_release_attr('release'),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 836, in lsb_release_attr
return self._lsb_release_info.get(attribute, '')
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 522, in __get__
ret = obj.__dict__[self._fname] = self._f(obj)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 933, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/local/lib/python3.7/subprocess.py", line 376, in check_output
**kwargs).stdout
File "/usr/local/lib/python3.7/subprocess.py", line 468, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
Попробуйте выполнить head -n 1 /usr/bin/lsb_release
и напишите, что у вас эта команда выводит. lsb_release
может запускаться на неправильном python, такое иногда бывает :(
Хмм... А если вызвать /usr/bin/python3 --version
, что выведется? А если вызвать lsb_release
, получается ошибка или просто сообщение "No LSB ..."?
Aleksei Pirogov,
$ /usr/bin/python3 --version
Python 3.7.0
$ lsb_release
Traceback (most recent call last):
File "/usr/bin/lsb_release", line 25, in <module>
import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Я сделала вот так:
sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.7/site-packages/lsb_release.py
и после этого он мне разрешил обновить pip и установить dogesay, но только с помощью sudo:
~$ python3 -m pip install --user --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/cd/82/04e9aaf603fdbaecb4323b9e723f13c92c245f6ab2902195c53987848c78/pip-21.1.2-py3-none-any.whl
Installing collected packages: pip
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/nanka/.local/lib/python3.7/site-packages/pip-21.1.2.dist-info'
Check the permissions.
You are using pip version 10.0.1, however version 21.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
sudo python3 -m pip install --user --upgrade pip
The directory '/home/nanka/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/nanka/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading https://files.pythonhosted.org/packages/cd/82/04e9aaf603fdbaecb4323b9e723f13c92c245f6ab2902195c53987848c78/pip-21.1.2-py3-none-any.whl (1.5MB)
100% |████████████████████████████████| 1.6MB 1.6MB/s
Installing collected packages: pip
Successfully installed pip-21.1.2
Мне нужно поменять права?
Устанавливать от имени sudo без абсолютной необходимости не следует. Это и не безопасно и будут проблемы с правами.
Раз уж у вас получилось обновить pip, можете в этот раз права вашему пользователю на
/home/nanka/.local/lib/python3.7
/home/nanka/.cache
Далее по ходу курса вы научитесь использовать виртуальные окружения. При этом отпадёт необходимость обновлять системный pip, а виртуальные окружения принадлежат вам, так что в них обновлять можно всё, что угодно :)
Кстати, обновить pip вам не удалось потому, что вы раньше уже успели воспользоваться sudo и создать директории внутри директории пользователя с правами root.
По идее, вам бы сейчас вообще удалить /home/nanka/.cache/pip
и /home/nanka/.local/lib/python3.7
(и посмотреть, владеет ли .local/lib
ваш пользователь или тоже root
, и поправить по необходимости) и заново обновить pip
уже без sudo. Это должно решить проблему с правами.
Aleksei Pirogov, большое спасибо!
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







