Komputer saya menjalankan windows di belakang proxy di server windows (menggunakan direktori aktif), dan saya tidak tahu cara melewatinya dengan pip
(di python3). Saya sudah mencoba menggunakan --proxy
, tetapi masih hanya batas waktu. Saya juga mencoba menyetel waktu tunggu yang lama (60-an), tetapi tidak ada bedanya. Pengaturan proxy saya benar, dan saya membandingkannya dengan yang berhasil saya gunakan di TortoiseHG untuk memastikannya.
Apakah ada trik lain yang diketahui siapa pun yang dapat saya coba, atau adakah batasan pip
terkait dengan proxy windows?
Pembaruan: Upaya saya yang gagal melibatkan pencarian pypi. Saya baru saja mencoba menginstal sesuatu dan berhasil. Pencarian masih gagal. Apakah ini menunjukkan adanya bug pip
atau apakah cara kerjanya berbeda?
sumber
Butuh beberapa jam bagi saya untuk mengetahuinya, tetapi saya akhirnya berhasil menggunakan CNTLM dan setelah itu membuatnya berfungsi hanya dengan file konfigurasi pip. Berikut adalah cara saya membuatnya berfungsi dengan file konfigurasi pip ...
Larutan:
1. Di Windows, navigasikan ke direktori profil pengguna Anda (Mis. C: \ Users \ Sync) dan buat folder bernama " pip "
2. Buat file bernama " pip.ini " di direktori ini (Mis. C: \ Users \ Sync \ pip \ pip.ini) dan masukkan berikut ini ke dalamnya:
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]
Ganti [nama domain] , [nama pengguna] , [sandi] , [alamat proxy] dan [port proxy] dengan informasi Anda sendiri.
Perhatikan, jika [nama domain] , [nama pengguna], atau [sandi] Anda memiliki karakter khusus, Anda harus encode-persen | menyandi .
3. Pada titik ini saya dapat menjalankan " pip install " tanpa masalah.
Semoga ini berhasil juga untuk orang lain!
NB: Ini dapat menimbulkan masalah keamanan karena kata sandi Anda disimpan dalam teks biasa. Jika ini adalah masalah, pertimbangkan untuk menyiapkan CNTLM menggunakan artikel ini (izinkan penggunaan sandi berciri alih-alih teks biasa). Setelah itu atur
proxy = 127.0.0.1:3128
di file "pip.ini" yang disebutkan di atas.sumber
PIP_CONFIG_FILE
variabel lingkungan untuk diarahkan ke fileBeginilah cara saya mengaturnya:
Ekspor pengaturan proxy:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
Instal paket yang ingin Anda instal:
pip install PackageName
Sebagai contoh:
sumber
--proxy
argumen tidak akan memilikinya sama sekali, tetapi pendekatan env var standar berfungsi pertama kali. Sebagai catatan, kami juga mengaturno_proxy
untuk menghindari permintaan internal lainnya yang mencoba keluar melalui proxy.cygwin
ataucmder
dan kemudian melakukannya dengan cara linux:export http_proxy=<proxy>
danexport https_proxy=<proxy>
kemudian hanya melakukanpip install <package>
--proxy
bendera baris perintah tidak pernah berhasil. Windows 10.Saya mengalami masalah yang sama di windows 7. Saya berhasil membuatnya bekerja dengan membuat folder "pip" dengan file "pip.ini" di dalamnya. Saya meletakkan folder ini di dalam "C: \ Users \ {my.username} \ AppData \ Roaming", karena menurut dokumentasi Python:
Dalam file pip.ini saya hanya memiliki:
[global] proxy = [proxy address]:[proxy port]
Jadi tidak ada username: password. Dan itu bekerja dengan baik.
sumber
Saya mengalami masalah serupa, dan menemukan bahwa perusahaan saya menggunakan otentikasi proxy NTLM. Jika Anda melihat kesalahan ini di pip.log Anda, mungkin inilah masalahnya:
NTLMaps dapat digunakan untuk berinteraksi dengan server proxy NTLM dengan menjadi proxy perantara.
Unduh NTLMAP, perbarui server.cfg yang disertakan, jalankan file main.py, lalu arahkan pengaturan proxy pip ke 127.0.0.1 :.
Saya juga perlu mengubah nilai default ini di
server.cfg
file menjadi:LM_PART:1 NT_PART:1 # Highly experimental option. See research.txt for details. # LM - 06820000 # NT - 05820000 # LM + NT - NTLM_FLAGS: 07820000
http://ntlmaps.sourceforge.net/
sumber
Anda juga mungkin mengalami masalah dengan sertifikat dari proxy Anda. Ada banyak jawaban di sini tentang cara mendapatkan kembali sertifikat proxy Anda.
Di host Windows, untuk mengizinkan pip menghapus proxy Anda, Anda mungkin ingin menyetel variabel lingkungan seperti:
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
Anda juga bisa menggunakan
--cert
argumen toPIP
dengan hasil yang sama.sumber
Saya memiliki masalah yang sama di lingkungan windows jarak jauh. Saya mencoba banyak solusi yang ditemukan di sini atau di posting serupa lainnya tetapi tidak ada yang berhasil. Akhirnya, solusinya cukup sederhana. Saya harus mengatur
NO_PROXY
dengan cmd:set NO_PROXY="<domain>\<username>:<password>@<host>:<port>" pip install <packagename>
Anda harus menggunakan tanda kutip ganda dan menggunakan
NO_PROXY
huruf besar. Anda juga bisa menambahkanNO_PROXY
sebagai variabel lingkungan alih-alih menyetelnya setiap kali Anda menggunakan konsol.Saya harap ini akan membantu jika ada solusi lain yang diposting di sini berfungsi.
sumber
instal cntlm: Cntlm: Proxy Otentikasi NTLM Cepat di C
Konfigurasi cntlm.ini:
mulai itu:
Sekarang di cmd.exe:
Collecting pip Downloading https://files.pythonhosted. 44c8a6e917c1820365cbebcb6a8974d1cd045ab4/ 100% |███████████████████████████████ Installing collected packages: pip Found existing installation: pip 9.0.1 Uninstalling pip-9.0.1: Successfully uninstalled pip-9.0.1 Successfully installed pip-10.0.1
berhasil!
Anda juga dapat menyembunyikan kata sandi: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
sumber
masalah yang sama pada windows10 dan solusi di atas tidak berfungsi untuk saya.
gunakan alat konsol emulator seperti
cygwin
dan kemudian lakukan dengan cara linux default:dan semuanya bekerja dengan baik.
sumber