Brewは、macOSにhttpieをインストールするための推奨される方法としてリストされています。 ただし、認証プラグインでは機能しません。
たとえば、 pip3 install requests-hawk
を実行してからhttp --help
実行すると、hawkは認証タイプとして表示されません。 pip3 install httpie-oauth
場合、依存関係としてpip経由でhttpieをインストールし、 /usr/local/bin/http
のbrewインストール済みリンクを上書きします。brewインストール済みバージョンを使用していないため、すべてのプラグインが表示されます。
macOSにインストールするための推奨される方法として、ドキュメントをpip3 install httpie
に変更することをお勧めします。
@rshurtsあなたが正しいです。 Homebrewベースのインストール用のプラグインインストールは、そのままでは機能しません。
ただし、Homebrewを推奨される方法として維持することには利点があります。 更新が簡単になり、メインパッケージはPython 3に依存できます(SSLサポートの改善など)。
理想的な世界の解決策は、すべてのプラグインをHomebrewパッケージ( brew install httpie-oauth
)として利用できるようにすることです。 しかし、それはメンテナにとって余分な作業を意味するので、すべてのプラグインがHomebrewで終わるわけではありません。
pip
を使用してプラグインをインストールする方が簡単な方法のようです。 Hombrewで動作させるには、インストールディレクトリとして(現在) /usr/local/Cellar/httpie/0.9.8_2/libexec/lib/python3.6/site-packages
を使用するようにpip
に指示することを意味します。
しかし、そこにインストールされたプラグインはHTTPieのアップグレードに耐えられません。
おそらく、 Homebrewの式を微調整して、たとえばHomebrew Python 3 site-packages
からHTTPieがインストールされたプラグインをロードできるようにすることが可能です(永続的かどうかはわかりません)。 または別の場所から。
…またはある種のカスタムプラグインインストーラー。
それまでの間、プラグインに関するドキュメントに「brewはプラグインでは機能せず、プラグイン機能のためにhttpieをpipインストールする」というメモがあれば、頭痛の種を減らすことができます。
ユーザーに管理者権限がない場合、読み取り権限にも問題があります。
$ 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で説明した権限エラーが発生します。 ローカル管理者アカウントを使用してhomebrewをインストールするのと同じ設定ですが、標準アカウントで通常の操作を行います。 私はPythonの人間ではなく、プラグインに関するこの議論を理解していません。 自作の公式の一部として来るものを超えてhttpieを追加しようとしたことを覚えていません。 pip3 list
は、おそらく最初のPythonバンドルの一部であった3つのアイテムのみを表示します。
これは基本的に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
最も参考になるコメント
それまでの間、プラグインに関するドキュメントに「brewはプラグインでは機能せず、プラグイン機能のためにhttpieをpipインストールする」というメモがあれば、頭痛の種を減らすことができます。