Httpie: لا يعمل إصدار Brew المثبت مع المكونات الإضافية

تم إنشاؤها على ٨ مارس ٢٠١٧  ·  5تعليقات  ·  مصدر: httpie/httpie

تم إدراج Brew كطريقة موصى بها لتثبيت httpie على macOS. ومع ذلك ، فإنه لا يعمل مع ملحقات المصادقة.

على سبيل المثال ، إذا قمت بتشغيل pip3 install requests-hawk ثم قمت بتشغيل http --help فلن يظهر hawk كنوع مصادقة. إذا كان لديك pip3 install httpie-oauth ، فسيتم تثبيت httpie عبر نقطة تبعية والكتابة فوق رابط المشروب المثبت في /usr/local/bin/http والآن ستظهر جميع المكونات الإضافية لأنها لا تستخدم إصدار الشراب المثبت.

أقترح تغيير الوثائق لقراءة pip3 install httpie كطريقة موصى بها للتثبيت على macOS.

bug docs

التعليق الأكثر فائدة

في غضون ذلك ، ربما ستوفر ملاحظة في الوثائق حول المكونات الإضافية تقول "لا يعمل الشراب مع المكونات الإضافية وتثبيت 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 (لست متأكدًا مما إذا كانت دائمة). أو من مكان آخر.

... أو نوع من مثبت البرنامج المساعد المخصص.

في غضون ذلك ، ربما ستوفر ملاحظة في الوثائق حول المكونات الإضافية تقول "لا يعمل الشراب مع المكونات الإضافية وتثبيت 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 ولا أفهم مناقشة المكونات الإضافية. لا أتذكر محاولة إضافة أي شيء httpie يتجاوز كل ما يأتي كجزء من صيغة البيرة. pip3 list فقط 3 عناصر من المفترض أنها كانت جزءًا من حزمة Python الأولية.

هل هذه مشكلة Python3 في الأساس (على الأقل ، Python مثبتة عبر homebrew)؟ هل يجب أن أقوم بالإبلاغ عن ذلك إلى المشرفين؟

لما يستحق الأمر وربما يبحث المستخدمون الآخرون في googing للحصول على إجابة ، فإن تثبيت مكون إضافي كان جيدًا بالنسبة لي مثل هذا:

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 التقييمات