Httpie: Brew安装的版本不适用于插件

创建于 2017-03-08  ·  5评论  ·  资料来源: httpie/httpie

Brew被列为在macOS上安装httpie的推荐方式。 但是,它不适用于auth插件。

例如,如果您pip3 install requests-hawk然后运行http --help hawk将不会显示为身份验证类型。 如果您pip3 install httpie-oauth会通过pip作为依赖项安装httpie并覆盖/usr/local/bin/http的brew install链接,现在所有插件都会显示出来,因为它没有使用brew 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公式,以允许从例如Homebrew Python 3 site-packages (不确定是否是永久性的)中通过HTTPie加载已安装的插件。 或从另一个位置。

…或某种自定义插件安装程序。

同时,也许有关插件的文档中有一条注释说“ 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之后,我遇到了@aheissenberger上面提到的权限错误。 我具有使用本地管理员帐户安装自制软件的相同设置,但在标准帐户中可以正常运行。 我不是Python的人,也不了解关于插件的讨论。 我不记得尝试添加任何自家自制配方之外的东西了。 pip3 list仅显示3个项目,这些项目大概是初始Python捆绑包的一部分。

这从根本上来说是一个Python3问题(至少是通过自制软件安装的Python)吗? 我应该向维护者报告它吗?

对于它的价值,也许其他用户正在寻找答案,安装插件对我来说很好用,如下所示:

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 等级