Невозможно установить pip с помощью "python get-pip.py --user" - PullRequest
0 голосов
/ 14 января 2019

Я не могу установить pip, используя python setup.py --user, и я думаю, что моя установка на python, как правило, немного foobared.

Я хочу иметь возможность использовать pip без sudo для моего пользователя (vagrant в данном случае). Все, что я прочитал, указывает на то, что вышесказанное должно работать, но просто отказывается.

Если я использую sudo python setup.py --user, тогда он устанавливается правильно, но опять же, sudo не должно быть необходимым из-за установки в каталог пользователя.

python setup.py --user

Traceback (most recent call last):
  File "setup.py", line 6, in <module>
    from setuptools import find_packages, setup
  File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 16, in <module>
    import setuptools.version
  File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/version.py", line 1, in <module>
    import pkg_resources
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
    @_call_aside
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
    f(*args, **kwargs)
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in    _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 572, in _build_master
    ws = cls()
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in __init__
    self.add_entry(entry)
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 621, in add_entry
    for dist in find_distributions(entry, True):
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1968, in find_on_path
    for dist in factory(fullpath):
  File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2030, in distributions_from_metadata

    if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/websocket_client-0.54.0.dist-info'

Другие биты информации ...

python -V
Python 3.6.7

which python
/usr/bin/python

Кроме того, я знаю, что могу использовать venv для достижения того, чего хочу, но дело в том, что оно должно работать, а это не так, а) не дает мне покоя, и б) указывает, что что-то просто неправильно с моей настройкой.

1 Ответ

0 голосов
/ 14 января 2019

Мне кажется, что вы пытаетесь установить материал в систему Python, используя пользователя без полномочий root, и, следовательно, у вас нет прав на редактирование материала в системных пакетах сайта. Пожалуйста, вы можете запустить whoami и посмотреть, под каким пользователем вы вошли, если вы вошли как кто-то, кроме root, вы должны использовать sudo для установки пакетов в системный Python, например, sudo pip install my_package.

Если вы не хотите устанавливать пакеты в системный каталог системных пакетов Python, вам, вероятно, следует работать в virtualenv, это дает вам автономную среду Python для вашего проекта и может быть создано любым пользователем в их доме. каталог.

Чтобы установить virtualenv:

sudo pip install virtualenv

Затем для создания нового virtualenv в качестве пользователя:

virtualenv my_env

Предполагать / Активировать virtualenv:

source my_env/bin/activate

Теперь вы можете устанавливать пакеты, используя pip в качестве вашего пользователя, в ваш Python virtualenv:

pip install my_package

Это дает вам полностью отдельный Python env, работающий от вашего имени, от системной установки Python. Надеюсь, это поможет вам, если я неправильно понял ваш вариант использования, пожалуйста, оставьте комментарий, и я обновлю свой ответ соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...