أهلا،
أرغب في حماية مستودع فهرس 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 لا تدعم هذه الميزة؟ إذا لم يتم التخطيط لها؟
يعتبر،
ستيفان
تدعم النقطة المصادقة الأساسية عبر 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 وتمكنت من تشغيلها عن طريق وضع المنفذ كما اقترحت. حل غامض جدًا ، أتمنى أن أتمكن من التصويت على إجابتك أكثر.
التعليق الأكثر فائدة
تدعم النقطة المصادقة الأساسية عبر URLOpener ،
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67
ما عليك سوى استخدام عنوان URL مثل http: // اسم المستخدم: كلمة المرور @ الخادم / أيا كان /