Pip: Gunakan pip install melalui penyimpanan pribadi yang dilindungi oleh .htaccess ?

Dibuat pada 15 Mar 2011  ·  21Komentar  ·  Sumber: pypa/pip

Hai,

Saya ingin melindungi repositori Indeks Python pribadi dengan file ".htaccess".

Ketika saya menggunakan pip untuk menginstal beberapa paket dari repositori ini, saya mengalami kesalahan ini:

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

Bagaimana saya bisa menggunakan parameter login/kata sandi dengan pip ?

Pip tidak mendukung fitur ini? Jika tidak direncanakan?

Salam,
Stefanus


auto-locked enhancement

Komentar yang paling membantu

pip mendukung otentikasi dasar melalui URLOpener-nya,
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67

Cukup gunakan URL seperti http://username:password@server/whatever/


Original Comment By: Jannis Leidel

Semua 21 komentar

pip mendukung otentikasi dasar melalui URLOpener-nya,
http://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -67

Cukup gunakan URL seperti http://username:password@server/whatever/


Original Comment By: Jannis Leidel

Dengan versi 0.8.1 pip yang bisa saya lakukan:

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

Saya tidak tahu apakah fitur ini didokumentasikan atau tidak.

Aku akan melihat itu segera.

Salam, Stephane


Original Comment By: Stéphane Klein

Jannis, saya mencoba seperti yang Anda katakan tetapi tidak berhasil untuk saya saat menggunakan HTTPS.

Dapatkah seseorang mengkonfirmasinya untuk saya? Apakah itu bug yang dikenal?

Terima kasih! :-)


Original Comment By: Guilherme Gondim

Saya dapat mengonfirmasi bahwa itu tidak berfungsi dengan https. Saya mendapatkan kesalahan berikut:

Traceback (most recent call last):

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

package/pip-0.6.3-py2.6.egg/pip/basecommand.py", baris 115, di main

    self.run(options, args)

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

package/pip-0.6.3-py2.6.egg/pip/commands/install.py", baris 155, sedang dijalankan

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

bundel=self.bundel)

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

paket/pip-0.6.3-py2.6.egg/pip/req.py", baris 823, di install_files

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

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

package/pip-0.6.3-py2.6.egg/pip/index.py", baris 55, di find_requirement

    page = self._get_page(main_index_url, req)

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

paket/pip-0.6.3-py2.6.egg/pip/index.py", baris 282, di _get_page

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

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

paket/pip-0.6.3-py2.6.egg/pip/index.py", baris 363, di 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

Versi pip yang lebih baru tampaknya menimbulkan kesalahan berikut saat menggunakan nama pengguna
dan kata sandi:

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-

paket/pip-0.8.1-py2.6.egg/pip/index.py", baris 241, di _get_queued_page

    page = self._get_page(location, req)

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

paket/pip-0.8.1-py2.6.egg/pip/index.py", baris 326, di _get_page

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

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

paket/pip-0.8.1-py2.6.egg/pip/index.py", baris 424, di get_page

    content_type = cls._get_content_type(url)

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

paket/pip-0.8.1-py2.6.egg/pip/index.py", baris 486, di _get_content_type

    resp = urlopen(req)

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

paket/pip-0.8.1-py2.6.egg/pip/download.py", baris 88, dalam panggilan

    response = self.get_response(url)

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

paket/pip-0.8.1-py2.6.egg/pip/download.py", baris 107, di 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

Masalah terjadi ketika pip mencoba melakukan permintaan kepala pada file arsip tetapi
mencapai 401. https://bitbucket.org/ianb/pip/src/tip/pip/download.py#cl -86

Url yang diteruskan ke self.get_response() adalah objek urllib2.Request tetapi
get_response() mencoba memanggil urlsplit() di atasnya. yang melempar kesalahan di atas.
File tersebut tampaknya sedang diunduh.


Original Comment By: Ian Lewis

Sepertinya ini sudah diperbaiki, saya memiliki indeks pribadi di bawah HTTPS + auth dasar dan itu hanya berfungsi dengan --index-url https://user:[email protected] .

Adakah yang bisa mengkonfirmasi ini dan menutup masalah?

Baru saja menambahkan permintaan tarik (https://github.com/pypa/pip/pull/786) yang ditautkan ke topik ini.

@brutasse saya dapat mengkonfirmasi. Tutup ini?

1.5.6 masih memiliki masalah.

Bisakah kami mengkonfirmasi dengan tepat masalah yang sekarang sedang dibicarakan?

Maaf. Bekerja untuk saya. Kesalahan saya :-D
Pada 18 Juli 2014 05:20, "Matt Iversen" [email protected] menulis:

Bisakah kami mengkonfirmasi dengan tepat masalah yang sekarang sedang dibicarakan?


Balas email ini secara langsung atau lihat di GitHub
https://github.com/pypa/pip/issues/51#issuecomment -49406680.

Masih perlu memasukkan nama pengguna dan kata sandi di URL?

Apakah didukung di pip==6.0.8 ?

Saya menggunakan indeks PyPI pribadi dan menjalankan instalasi seperti ini:
pip install <my_package> --cert=<required_for_some_reason> --extra-index-url https://username:[email protected]/simple/ --allow-all-external

dan kemudian berfungsi, tetapi meminta nama pengguna dan kata sandi secara interaktif. Ini bukan kasus ketika skrip ini berjalan di luar Shell dengan CLI.

Harap konfirmasi apakah itu terkait dengan masalah yang dibahas di sini atau sarankan apakah saya harus membuat masalah lain, atau tunjukkan solusinya.

@vladignatyev Saya baru saja mengalami masalah yang sama yang Anda sebutkan, meminta pengguna/kata sandi secara interaktif. Saya mempersempit masalah untuk memiliki simbol dalam kata sandi yang membutuhkan pengkodean url. Jika saya tidak mengkodekan url kata sandi, URL tidak dapat diuraikan. Jika saya melakukan url-encode kata sandi, saya pikir pip bukan url-decoding sebelum mencoba mengautentikasi.

Saya memiliki masalah ini juga dengan pip 7.1.2. Ada simbol dalam kata sandi yang membutuhkan pengkodean url, pip gagal untuk mengautentikasi (mendapat respons 401) dan meminta nama pengguna/kata sandi secara interaktif. Ini kemudian berfungsi dengan baik jika saya memasukkan pengguna/pass secara interaktif. Seperti @bcbrown saya curiga itu bukan url-decoding kata sandi.

HARAP PERBAIKI INI ASAP PIP 8.1.2

Baru saja mengalami ini menggunakan 9.0.3 .... Apakah ini masih menjadi masalah serius?

Mengurai nama pengguna/kata sandi dari URL hanya berfungsi ketika port ditentukan.
(Setidaknya pada Debian 9, Python 2.7.13, pip 18.1, tapi saya juga mengalami masalah ini pada sistem lain)

Kueri ini untuk nama pengguna/kata sandi: pip install -f https://user:[email protected]/pkgs requests
Ini berfungsi: pip install -f https://user:[email protected]:443/pkgs requests

Ini berfungsi dengan pip 18.1 tetapi rusak di versi terbaru (19.1), Dikonfirmasi setelah kembali ke 18.1 berfungsi.

Mengurai nama pengguna/kata sandi dari URL hanya berfungsi ketika port ditentukan.
(Setidaknya pada Debian 9, Python 2.7.13, pip 18.1, tapi saya juga mengalami masalah ini pada sistem lain)

Kueri ini untuk nama pengguna/kata sandi: pip install -f https://user:[email protected]/pkgs requests
Ini berfungsi: pip install -f https://user:[email protected]:443/pkgs requests

@olt Saya memiliki masalah yang sama menggunakan pip 19.1.1 dan berhasil membuatnya berfungsi dengan meletakkan port seperti yang Anda sarankan. Solusi yang cukup tidak jelas, saya berharap saya dapat meningkatkan jawaban Anda lebih banyak.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat