Httpie: Установленная версия Brew не работает с плагинами

Созданный на 8 мар. 2017  ·  5Комментарии  ·  Источник: httpie/httpie

Brew указан как рекомендуемый способ установки httpie на macOS. Однако это не работает с плагинами аутентификации.

Например, если вы pip3 install requests-hawk и затем запустите http --help hawk не будет отображаться как тип аутентификации. Если вы pip3 install httpie-oauth он установит httpie через pip в качестве зависимости и перезапишет установленную ссылку brew в /usr/local/bin/http и теперь все плагины будут отображаться, потому что он не использует установленную версию brew.

Я предлагаю изменить документацию на pip3 install httpie как рекомендуемый метод установки на macOS.

bug docs

Самый полезный комментарий

Между тем, возможно, заметка в документации к плагинам, в которой говорится, что «brew не работает с плагинами, и установить httpie для функциональности плагина», избавит от некоторых головных болей.

Все 5 Комментарий

@rshurts ты прав. Установка плагина для установки на основе Homebrew не работает из коробки.

Тем не менее, использование Homebrew в качестве рекомендуемого метода имеет свои преимущества. Это упрощает обновление, а основной пакет может зависеть от Python 3 (улучшенная поддержка SSL и т. Д.).

Идеальным мировым решением было бы иметь все плагины в виде пакетов Homebrew ( brew install httpie-oauth ). Но это означало бы дополнительную работу для сопровождающих, чтобы не все плагины попали в Homebrew.

Использование pip для установки плагинов кажется более простым способом. Чтобы заставить его работать с Hombrew, это будет означать указание pip использовать (в настоящее время) /usr/local/Cellar/httpie/0.9.8_2/libexec/lib/python3.6/site-packages в качестве каталога установки.

Но установленные там плагины не выдержат обновлений HTTPie.

Возможно, можно было бы настроить формулу Homebrew, чтобы разрешить HTTPie загружать установленные плагины, например, из Homebrew Python 3 site-packages (не уверен, что это навсегда). Или из другого места.

… Или какой-то специальный установщик плагинов.

Между тем, возможно, заметка в документации к плагинам, в которой говорится, что «brew не работает с плагинами, и установить httpie для функциональности плагина», избавит от некоторых головных болей.

Также существует проблема с правами чтения, когда у пользователя нет прав администратора:

$ http --help
Traceback (most recent call last):
  File "/usr/local/bin/http", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3123, in <module>
    <strong i="6">@_call_aside</strong>
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3107, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3136, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 569, in _build_master
    ws = cls()
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 562, in __init__
    self.add_entry(entry)
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 618, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1965, in find_on_path
    for dist in factory(fullpath):
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2035, in distributions_from_metadata
    root, entry, metadata, precedence=DEVELOP_DIST,
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2492, in from_location
    py_version=py_version, platform=platform, **kw
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2867, in _reload_version
    md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2456, in _version_from_file
    line = next(iter(version_lines), '')
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2646, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1411, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1407, in get_metadata
    value = self._get(self._fn(self.egg_info, name))
  File "/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1519, in _get
    with open(path, 'rb') as stream:
PermissionError: [Errno 13] Permission denied: '/usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/idna-2.7-py3.7.egg-info/PKG-INFO'

Я смог исправить это с помощью

chmod +r /usr/local/Cellar/httpie/1.0.0/libexec/lib/python3.7/site-packages/idna-2.7-py3.7.egg-info/PKG-INFO

но перешел на pip3 install httpie потому что это упростило установку плагинов.

Поскольку я обновился до 10.14 Mojave, у меня возникла ошибка разрешений, упомянутая выше pip3 list показывает только 3 элемента, которые предположительно были частью начального пакета Python.

Является ли это фундаментальной проблемой Python3 (по крайней мере, Python, установленный через homebrew)? Следует ли мне сообщать об этом сопровождающим?

Что бы это ни стоило, и, возможно, другие пользователи ищут ответ в Google, установка плагина отлично работала для меня, например:

pip3 install -t /usr/local/Cellar/httpie/2.0.0/libexec/lib/python3.8/site-packages httpie-jwt-auth

Спасибо https://github.com/jakubroztocil/httpie/issues/566#issuecomment -285210693

Была ли эта страница полезной?
0 / 5 - 0 рейтинги