Httpie: Versi yang dipasang bir tidak berfungsi dengan plugin

Dibuat pada 8 Mar 2017  ·  5Komentar  ·  Sumber: httpie/httpie

Brew terdaftar sebagai cara yang disarankan untuk menginstal httpie di macOS. Namun, itu tidak berfungsi dengan plugin auth.

Misalnya, jika Anda pip3 install requests-hawk dan kemudian menjalankan http --help hawk tidak akan ditampilkan sebagai tipe auth. Jika Anda pip3 install httpie-oauth itu akan menginstal httpie melalui pip sebagai ketergantungan dan menimpa link yang diinstal brew di /usr/local/bin/http dan sekarang semua plugin akan muncul karena tidak menggunakan versi yang diinstal brew.

Saya sarankan untuk mengubah dokumentasi menjadi pip3 install httpie sebagai metode penginstalan yang disarankan di macOS.

bug docs

Komentar yang paling membantu

Sementara itu, mungkin catatan dalam dokumentasi seputar plugin yang mengatakan "brew tidak bekerja dengan plugin dan memasang pip httpie untuk fungsionalitas plugin" akan menghemat beberapa sakit kepala.

Semua 5 komentar

@rush Anda benar. Penginstalan plugin untuk penginstalan berbasis Homebrew tidak berfungsi di luar kotak.

Ada keuntungan untuk mempertahankan Homebrew sebagai metode yang disarankan. Itu membuat pembaruan menjadi mudah dan paket utama dapat bergantung pada Python 3 (dukungan SSL yang ditingkatkan, dll.).

Solusi dunia yang ideal adalah memiliki semua plugin yang tersedia sebagai paket Homebrew ( brew install httpie-oauth ). Tetapi itu berarti pekerjaan ekstra untuk pengelola sehingga tidak semua plugin akan berakhir di Homebrew.

Menggunakan pip untuk menginstal plugin sepertinya cara yang lebih mudah. Untuk membuatnya bekerja dengan Hombrew, itu berarti menginstruksikan pip untuk menggunakan (saat ini) /usr/local/Cellar/httpie/0.9.8_2/libexec/lib/python3.6/site-packages sebagai direktori instalasi.

Tetapi plugin yang dipasang di sana tidak akan bertahan dalam peningkatan HTTPie.

Mungkin dimungkinkan untuk mengubah rumus Homebrew untuk membuat HTTPie memuat plugin yang diinstal dari, misalnya, Homebrew Python 3 site-packages (tidak yakin apakah itu permanen). Atau dari lokasi lain.

… Atau semacam pemasang plugin khusus.

Sementara itu, mungkin catatan dalam dokumentasi seputar plugin yang mengatakan "brew tidak bekerja dengan plugin dan memasang pip httpie untuk fungsionalitas plugin" akan menghemat beberapa sakit kepala.

Ada juga masalah dengan hak baca saat pengguna tidak memiliki hak admin:

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

Saya bisa memperbaikinya dengan

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

tetapi beralih ke pip3 install httpie karena itu membuatnya lebih mudah untuk menginstal plugin.

Sejak saya meningkatkan ke 10.14 Mojave, saya mengalami kesalahan izin yang disebutkan oleh @aheissenberger di atas. Saya memiliki pengaturan yang sama di mana saya menginstal homebrew menggunakan akun admin lokal tetapi melakukan operasi normal di akun standar. Saya bukan orang Python dan tidak mengerti diskusi tentang plugin ini. Saya tidak ingat mencoba menambahkan apa pun di luar apa pun yang datang sebagai bagian dari formula homebrew. pip3 list hanya menampilkan 3 item yang mungkin merupakan bagian dari paket Python awal.

Apakah ini pada dasarnya adalah masalah Python3 (setidaknya, Python diinstal melalui homebrew)? Haruskah saya melaporkannya ke pengelola?

Untuk apa nilainya dan mungkin pengguna lain mencari jawabannya di Google, menginstal plugin berfungsi dengan baik untuk saya seperti ini:

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

Terima kasih https://github.com/jakubroztocil/httpie/issues/566#issuecomment -285210693

Apakah halaman ini membantu?
0 / 5 - 0 peringkat