Hi,
Ich möchte ein privates Python-Index-Repository mit der Datei ".htaccess" schützen.
Wenn ich pip
, um ein Paket aus diesem Repository zu installieren, erhalte ich diesen Fehler:
Getting page http://pypi.is-webdesign.com/simple/
Could not fetch URL http://pypi.is-webdesign.com/simple/: HTTP Error 401: Unauthorized
Wie kann ich Login-/Passwortparameter mit pip verwenden?
Pip unterstützt diese Funktion nicht? Wenn nicht, ist es geplant?
Grüße,
Stephan
pip unterstützt grundlegende Authentifizierung über seinen URLOpener,
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67
Verwenden Sie einfach eine URL wie http://username:password@server/whatever/
Original Comment By: Jannis Leidel
Mit der 0.8.1 pip-Version kann ich Folgendes tun:
pip install -f http://username:[email protected]/simple/ my_package
Ich weiß nicht, ob diese Funktion dokumentiert ist oder nicht.
Das schau ich mir gleich mal an.
Grüße, Stephan
Original Comment By: Stéphane Klein
Jannis, ich habe es wie gesagt versucht, aber es hat bei mir nicht funktioniert, wenn ich HTTPS verwende.
Kann mir das jemand bestätigen? Ist es ein bekannter Fehler?
Vielen Dank! :-)
Original Comment By: Guilherme Gondim
Ich kann bestätigen, dass es mit https nicht funktioniert. Ich bekomme folgenden Fehler:
Traceback (most recent call last):
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/basecommand.py", Zeile 115, in main
self.run(options, args)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/commands/install.py", Zeile 155, in Ausführung
requirement_set.install_files(finder, force_root_egg_info=self.bundle,
bündel=selbst.bündel)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/req.py", Zeile 823, in install_files
url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/index.py", Zeile 55, in find_requirement
page = self._get_page(main_index_url, req)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/index.py", Zeile 282, in _get_page
return HTMLPage.get_page(link, req, cache=self.cache)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.6.3-py2.6.egg/pip/index.py", Zeile 363, in 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
Neuere Versionen von pip scheinen bei der Verwendung eines Benutzernamens den folgenden Fehler auszulösen
und Passwort:
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-
Pakete/pip-0.8.1-py2.6.egg/pip/index.py", Zeile 241, in _get_queued_page
page = self._get_page(location, req)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.8.1-py2.6.egg/pip/index.py", Zeile 326, in _get_page
return HTMLPage.get_page(link, req, cache=self.cache)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.8.1-py2.6.egg/pip/index.py", Zeile 424, in get_page
content_type = cls._get_content_type(url)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.8.1-py2.6.egg/pip/index.py", Zeile 486, in _get_content_type
resp = urlopen(req)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.8.1-py2.6.egg/pip/download.py", Zeile 88, im Aufruf
response = self.get_response(url)
File "/home/ian/.virtualenvs/test/lib/python2.6/site-
Pakete/pip-0.8.1-py2.6.egg/pip/download.py", Zeile 107, in 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
Das Problem tritt auf, wenn pip versucht, eine Kopfanforderung für die Archivdatei durchzuführen, aber
erreicht eine 401. https://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -86
Die an self.get_response() übergebene URL ist ein urllib2.Request-Objekt, aber
get_response() versucht, urlsplit() darauf aufzurufen. was den obigen Fehler auslöst.
Die Datei scheint jedoch heruntergeladen zu werden.
Original Comment By: Ian Lewis
Sieht so aus, als ob dies behoben ist, ich habe einen privaten Index unter HTTPS + Basic Auth und es funktioniert einfach mit --index-url https://user:[email protected]
.
Kann das jemand bestätigen und das Problem schließen?
Habe gerade eine Pull-Anfrage (https://github.com/pypa/pip/pull/786) zu diesem Thema hinzugefügt.
@brutasse kann ich bestätigen. Schließ das?
1.5.6 hat immer noch das Problem.
Können wir das Thema, über das jetzt gesprochen wird, genau bestätigen?
Es tut uns leid. Funktioniert bei mir. Mein Fehler :-D
Am 18. Juli 2014 um 05:20 Uhr schrieb "Matt Iversen" [email protected] :
Können wir das Thema, über das jetzt gesprochen wird, genau bestätigen?
—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/pypa/pip/issues/51#issuecomment -49406680.
Immer noch notwendig Benutzername und Passwort in die URL eintragen?
Wird es in pip==6.0.8
?
Ich verwende den privaten PyPI-Index und führe die Installation wie folgt aus:
pip install <my_package> --cert=<required_for_some_reason> --extra-index-url https://username:[email protected]/simple/ --allow-all-external
und dann funktioniert es, fragt aber interaktiv nach Benutzername und Passwort. Es ist kein Fall, wenn dieses Skript außerhalb der Shell mit CLI ausgeführt wurde.
Bitte bestätigen Sie, ob es mit dem hier besprochenen Problem verknüpft ist, oder schlagen Sie vor, ein weiteres Problem zu erstellen, oder weisen Sie auf die Lösung hin.
@vladignatyev Ich bin gerade auf das gleiche Problem
Ich habe dieses Problem auch mit pip 7.1.2. Es gibt ein Symbol im Passwort, das eine URL-Codierung erfordert, pip kann sich nicht authentifizieren (erhält eine 401-Antwort) und fordert interaktiv zur Eingabe von Benutzername/Passwort auf. Es funktioniert dann einwandfrei, wenn ich den Benutzer/Pass interaktiv eingebe. Wie @bcbrown vermute ich, dass das Passwort nicht entschlüsselt wird .
BITTE BEHEBEN SIE DIESES SO BALD WIE MÖGLICH PIP 8.1.2
Ich bin gerade mit 9.0.3
gestoßen .... Ist das ernsthaft immer noch ein Problem?
Das Parsen des Benutzernamens/Passworts aus der URL funktioniert nur, wenn der Port angegeben ist.
(Zumindest auf Debian 9, Python 2.7.13, pip 18.1, aber ich hatte dieses Problem auch auf anderen Systemen)
Dies fragt nach Benutzername/Passwort: pip install -f https://user:[email protected]/pkgs requests
Das funktioniert: pip install -f https://user:[email protected]:443/pkgs requests
Dies funktioniert mit pip 18.1, ist aber in der neuesten Version (19.1) defekt. Nach dem Zurücksetzen auf 18.1 bestätigt, dass es funktioniert.
Das Parsen des Benutzernamens/Passworts aus der URL funktioniert nur, wenn der Port angegeben ist.
(Zumindest auf Debian 9, Python 2.7.13, pip 18.1, aber ich hatte dieses Problem auch auf anderen Systemen)Dies fragt nach Benutzername/Passwort:
pip install -f https://user:[email protected]/pkgs requests
Das funktioniert:pip install -f https://user:[email protected]:443/pkgs requests
@olt Ich hatte das gleiche Problem mit pip 19.1.1 und konnte es zum Laufen bringen, indem ich den Port wie von Ihnen vorgeschlagen gesetzt habe. Ziemlich obskure Problemumgehung, ich wünschte, ich könnte Ihre Antwort mehr positiv bewerten.
Hilfreichster Kommentar
pip unterstützt grundlegende Authentifizierung über seinen URLOpener,
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67
Verwenden Sie einfach eine URL wie http://username:password@server/whatever/