Вопрос №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.

8 0

Aleksei Pirogov

Попробуйте выполнить head -n 1 /usr/bin/lsb_release и напишите, что у вас эта команда выводит. lsb_release может запускаться на неправильном python, такое иногда бывает :(

0

Анастасия Михайлова

Aleksei Pirogov,

~$ head -n 1 /usr/bin/lsb_release
#!/usr/bin/python3 -Es
0

Aleksei Pirogov

Хмм... А если вызвать /usr/bin/python3 --version, что выведется? А если вызвать lsb_release, получается ошибка или просто сообщение "No LSB ..."?

0

Анастасия Михайлова

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'
0

Анастасия Михайлова

Я сделала вот так:

 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

Мне нужно поменять права?

0

Aleksei Pirogov

Устанавливать от имени sudo без абсолютной необходимости не следует. Это и не безопасно и будут проблемы с правами.

Раз уж у вас получилось обновить pip, можете в этот раз права вашему пользователю на

  • /home/nanka/.local/lib/python3.7
  • /home/nanka/.cache

Далее по ходу курса вы научитесь использовать виртуальные окружения. При этом отпадёт необходимость обновлять системный pip, а виртуальные окружения принадлежат вам, так что в них обновлять можно всё, что угодно :)

0

Aleksei Pirogov

Кстати, обновить pip вам не удалось потому, что вы раньше уже успели воспользоваться sudo и создать директории внутри директории пользователя с правами root.

По идее, вам бы сейчас вообще удалить /home/nanka/.cache/pip и /home/nanka/.local/lib/python3.7 (и посмотреть, владеет ли .local/lib ваш пользователь или тоже root, и поправить по необходимости) и заново обновить pip уже без sudo. Это должно решить проблему с правами.

0

Анастасия Михайлова

Aleksei Pirogov, большое спасибо!

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев