Pip: استخدام تثبيت نقطة من خلال مستودع خاص محمي بواسطة .htaccess؟

تم إنشاؤها على ١٥ مارس ٢٠١١  ·  21تعليقات  ·  مصدر: pypa/pip

أهلا،

أرغب في حماية مستودع فهرس Python خاص بملف ".htaccess".

عندما أستخدم pip لتثبيت بعض الحزم من هذا المستودع ، يظهر هذا الخطأ:

Getting page http://pypi.is-webdesign.com/simple/
Could not fetch URL http://pypi.is-webdesign.com/simple/: HTTP Error 401: Unauthorized

كيف يمكنني استخدام معلمات تسجيل الدخول / كلمة المرور مع النقطة؟

Pip لا تدعم هذه الميزة؟ إذا لم يتم التخطيط لها؟

يعتبر،
ستيفان


auto-locked enhancement

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

تدعم النقطة المصادقة الأساسية عبر URLOpener ،
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67

ما عليك سوى استخدام عنوان URL مثل http: // اسم المستخدم: كلمة المرور @ الخادم / أيا كان /


Original Comment By: Jannis Leidel

ال 21 كومينتر

تدعم النقطة المصادقة الأساسية عبر URLOpener ،
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67

ما عليك سوى استخدام عنوان URL مثل http: // اسم المستخدم: كلمة المرور @ الخادم / أيا كان /


Original Comment By: Jannis Leidel

مع إصدار 0.8.1 نقطة يمكنني القيام به:

pip install -f http://username:[email protected]/simple/ my_package

لا أعرف ما إذا كانت هذه الميزة موثقة أم لا.

سأبحث عن ذلك في أقرب وقت.

مع التحيات ، ستيفان


Original Comment By: Stéphane Klein

Jannis ، لقد حاولت كما قلت لكن ذلك لم ينجح معي عند استخدام HTTPS.

هل يستطيع أحد أن يؤكدها لي؟ هل هي حشرة معروفة؟

شكرا! :-)


Original Comment By: Guilherme Gondim

أستطيع أن أؤكد أنه لا يعمل مع https. أحصل على الخطأ التالية:

Traceback (most recent call last):

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / basecommand.py "، السطر 115 ، بشكل رئيسي

    self.run(options, args)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / commands / install.py "، السطر 155 ، قيد التشغيل

    requirement_set.install_files(finder, force_root_egg_info=self.bundle,

حزمة = self.bundle)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / req.py "، السطر 823 ، في ملف install_files

    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / index.py "، السطر 55 ، في find_requirement

    page = self._get_page(main_index_url, req)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / index.py "، السطر 282 ، في _get_page

    return HTMLPage.get_page(link, req, cache=self.cache)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.6.3-py2.6.egg / pip / index.py "، السطر 363 ، في get_page

    resp = urllib2.urlopen(url)

  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen

    return _opener.open(url, data, timeout)

  File "/usr/lib/python2.6/urllib2.py", line 391, in open

    response = self._open(req, data)

  File "/usr/lib/python2.6/urllib2.py", line 409, in _open

    '_open', req)

  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain

    result = func(*args)

  File "/usr/lib/python2.6/urllib2.py", line 1169, in https_open

    return self.do_open(httplib.HTTPSConnection, req)

  File "/usr/lib/python2.6/urllib2.py", line 1107, in do_open

    h = http_class(host, timeout=req.timeout) # will parse host:port

  File "/usr/lib/python2.6/httplib.py", line 1101, in __init__

    HTTPConnection.__init__(self, host, port, strict, timeout)

  File "/usr/lib/python2.6/httplib.py", line 657, in __init__

    self._set_hostport(host, port)

  File "/usr/lib/python2.6/httplib.py", line 682, in _set_hostport

    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])

InvalidURL: nonnumeric port: '[email protected]'

Original Comment By: Ian Lewis

يبدو أن الإصدارات الأحدث من النقطة تلقي بالخطأ التالي عند استخدام اسم مستخدم
وكلمة المرور:

Traceback (most recent call last):

  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner

    self.run()

  File "/usr/lib/python2.6/threading.py", line 484, in run

    self.__target(*self.__args, **self.__kwargs)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / index.py "، السطر 241 ، في _get_queued_page

    page = self._get_page(location, req)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / index.py "، السطر 326 ، في _get_page

    return HTMLPage.get_page(link, req, cache=self.cache)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / index.py "، السطر 424 ، في get_page

    content_type = cls._get_content_type(url)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / index.py "، السطر 486 ، في _get_content_type

    resp = urlopen(req)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / download.py "، السطر 88 ، قيد الطلب

    response = self.get_response(url)

  File "/home/ian/.virtualenvs/test/lib/python2.6/site-

الحزم / pip-0.8.1-py2.6.egg / pip / download.py "، السطر 107 ، في get_response

    scheme, netloc, path, query, frag = urlparse.urlsplit(url)

  File "/usr/lib/python2.6/urlparse.py", line 147, in urlsplit

    i = url.find(':')

  File "/usr/lib/python2.6/urllib2.py", line 218, in __getattr__

    raise AttributeError, attr

AttributeError: find

تحدث المشكلة عندما تحاول النقطة تنفيذ طلب رئيسي في ملف الأرشيف ولكن
يضرب 401. https://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -86

عنوان url الذي تم تمريره إلى self.get_response () هو كائن urllib2.Request ولكن
يحاول get_response () استدعاء urlsplit () عليه. الذي يرمي الخطأ أعلاه.
يبدو أن الملف يتم تنزيله بالرغم من ذلك.


Original Comment By: Ian Lewis

يبدو أن هذا تم إصلاحه ، ولدي فهرس خاص ضمن HTTPS + المصادقة الأساسية ويعمل فقط مع --index-url https://user:[email protected] .

هل يمكن لأي شخص تأكيد ذلك وإغلاق المشكلة؟

أضف للتو طلب سحب (https://github.com/pypa/pip/pull/786) مرتبطًا بهذا الموضوع.

brutasse أستطيع أن أؤكد. أغلق هذا؟

1.5.6 لا يزال لديه المشكلة.

هل يمكننا أن نؤكد بالضبط القضية التي يتم الحديث عنها الآن؟

آسف. يعمل لدي. خطأي: - د
في 18 يوليو 2014 5:20 صباحًا ، كتب "Matt Iversen" [email protected] :

هل يمكننا أن نؤكد بالضبط القضية التي يتم الحديث عنها الآن؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/pypa/pip/issues/51#issuecomment -49406680.

لا يزال من الضروري وضع اسم المستخدم وكلمة المرور في URL؟

هل هو مدعوم بـ pip==6.0.8 ؟

أستخدم فهرس PyPI الخاص وأقوم بتشغيل التثبيت مثل هذا:
pip install <my_package> --cert=<required_for_some_reason> --extra-index-url https://username:[email protected]/simple/ --allow-all-external

ثم يعمل ، لكنه يطلب اسم المستخدم وكلمة المرور بشكل تفاعلي. إنها ليست الحالة التي يتم فيها تشغيل هذا البرنامج النصي خارج الغلاف باستخدام CLI.

يرجى تأكيد ما إذا كان مرتبطًا بالمشكلة التي تمت مناقشتها هنا أو اقتراح ما إذا كان يجب إنشاء مشكلة أخرى ، أو يرجى الإشارة إلى الحل.

vladignatyev لقد واجهت للتو نفس المشكلة التي ذكرتها ، والتي تطلب المستخدم / كلمة المرور بشكل تفاعلي. لقد قمت بتضييق نطاق المشكلة إلى وجود رمز في كلمة المرور يحتاج إلى تشفير عنوان url. إذا لم أقم بترميز كلمة المرور بعنوان url ، فلا يمكن تحليل عنوان URL. إذا قمت بترميز عنوان url لكلمة المرور ، أعتقد أن النقطة لا تقوم بفك تشفير عنوان url قبل محاولة المصادقة.

لدي هذه المشكلة أيضًا مع النقطة 7.1.2. هناك رمز في كلمة المرور يحتاج إلى تشفير عنوان url ، وفشل pip في المصادقة (يحصل على استجابة 401) ويطالب باسم المستخدم / كلمة المرور بشكل تفاعلي. ثم يعمل بشكل جيد إذا قمت بإدخال المستخدم / المرور بشكل تفاعلي. مثل bcbrown ، أظن أنه ليس فك تشفير عنوان url لكلمة المرور.

يرجى إصلاح هذا في أسرع وقت ممكن PIP 8.1.2

واجهت هذا للتو باستخدام 9.0.3 .... هل ما زالت هذه مشكلة خطيرة؟

لا يعمل تحليل اسم المستخدم / كلمة المرور من عنوان URL إلا عند تحديد المنفذ.
(على الأقل في Debian 9 ، Python 2.7.13 ، النقطة 18.1 ، لكن لدي هذه المشكلة في الأنظمة الأخرى أيضًا)

هذا الاستعلام عن اسم المستخدم / كلمة المرور: pip install -f https://user:[email protected]/pkgs requests
هذا يعمل: pip install -f https://user:[email protected]:443/pkgs requests

يعمل هذا مع النقطة 18.1 ولكن تم كسره في أحدث إصدار (19.1) ، تم التأكيد عليه بعد العودة إلى 18.1 وهو يعمل.

لا يعمل تحليل اسم المستخدم / كلمة المرور من عنوان URL إلا عند تحديد المنفذ.
(على الأقل في Debian 9 ، Python 2.7.13 ، النقطة 18.1 ، لكن لدي هذه المشكلة في الأنظمة الأخرى أيضًا)

هذا الاستعلام عن اسم المستخدم / كلمة المرور: pip install -f https://user:[email protected]/pkgs requests
هذا يعمل: pip install -f https://user:[email protected]:443/pkgs requests

olt واجهت نفس المشكلة باستخدام النقطة 19.1.1 وتمكنت من تشغيلها عن طريق وضع المنفذ كما اقترحت. حل غامض جدًا ، أتمنى أن أتمكن من التصويت على إجابتك أكثر.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات