私のコンピューターは(Active Directoryを使用して)Windowsサーバー上のプロキシの背後でWindowsを実行しているため、pip
(python3で)を使用してそれを通過する方法がわかりません。 --proxy
を使用してみましたが、それでもタイムアウトします。また、長いタイムアウト(60秒)を設定しようとしましたが、違いはありませんでした。私のプロキシ設定は正しいので、TortoiseHGで正常に使用しているプロキシ設定と比較して確認しました。
私が試すことができることを誰もが知っている他のトリックがありますか、またはWindowsプロキシに関してpip
にいくつかの制限がありますか?
更新: pypiの検索に失敗した私の試み。私は実際に何かをインストールしようとしましたが、うまくいきました。それでも検索は失敗します。これはpip
のバグを示していますか、それとも異なる動作をしますか?
会社のNTLM認証プロキシで動作する2つのオプションを試しました。オプション1は--proxy http://user:pass@proxyAddress:proxyPort
を使用することです
それでも問題が解決しない場合は、プロキシ認証サービスをインストールし( CNTLM を使用)、pipを指すようにすることをお勧めします。つまり、--proxy http://localhost:3128
のようなものです。
これを理解するのに数時間かかりましたが、ついにCNTLMを使用して動作するようになり、その後、pip configファイルだけで動作するようになりました。これが、pip configファイルでどのように動作するかです...
解決策:
1。Windowsでユーザープロファイルディレクトリ(例:C:\ Users\Sync)に移動し、「pip "
2。このディレクトリに「pip.ini」という名前のファイルを作成します(例:C:\ Users\Sync\pip\pip.ini)そして、それに以下を入力します:
[global]
trusted-Host = pypi.python.org
pypi.org
files.pythonhosted.org
proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]
置換[ドメイン名]、[ユーザー名]、[パスワード]、[プロキシアドレス]および [プロキシポート]と独自の情報。
3。この時点で、「pip install」を実行できました問題なく。
うまくいけば、これは他の人にも有効です!
追伸:これは、パスワードがプレーンテキストで保存されているため、セキュリティ上の懸念を引き起こす可能性があります。これが問題になる場合は、 この記事 (プレーンテキストの代わりにハッシュ化されたパスワードの使用を許可)を使用してCNTLMをセットアップすることを検討してください。その後、上記の「pip.ini」ファイルにproxy = 127.0.0.1:3128
を設定します。
Windows 7でも同じ問題が発生しました。「pip.ini」ファイルを含む「pip」フォルダーを作成することで、問題を解決できました。このフォルダーを「C:\ Users\{my.username}\AppData\Roaming」内に配置しました。これは、Pythonドキュメントによると:
Windowsでは、構成ファイルは%APPDATA%\ pip\pip.iniです。
Pip.iniファイルには次のものしかありません。
[global]
proxy = [proxy address]:[proxy port]
したがって、ユーザー名:パスワードはありません。そして、それはうまく機能しています。
同様の問題があり、私の会社がNTLMプロキシ認証を使用していることがわかりました。 pip.logにこのエラーが表示される場合、これはおそらく問題です。
URLを取得できませんでした http://pypi.python.org/simple/pyreadline :HTTPエラー407:プロキシ認証が必要です(ISAサーバーは、要求を満たすために承認が必要です。アクセスWebプロキシフィルタへの拒否は拒否されます。)
NTLMapsを使用して、中間プロキシになることにより、NTLMプロキシサーバーとインターフェイスできます。
NTLMAPをダウンロードし、含まれているserver.cfgを更新し、main.pyファイルを実行してから、pipのプロキシ設定を127.0.0.1:にポイントします。
また、server.cfg
ファイルのこれらのデフォルト値を次のように変更する必要がありました。
LM_PART:1
NT_PART:1
# Highly experimental option. See research.txt for details.
# LM - 06820000
# NT - 05820000
# LM + NT -
NTLM_FLAGS: 07820000
また、プロキシからの証明書に問題が発生する場合があります。ここには、プロキシの証明書を取得する方法に関する多くの回答があります。
Windowsホストで、pipがプロキシをクリアできるようにするには、次のような環境変数を設定することができます。
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
PIP
に--cert
引数を使用しても同じ結果が得られます。
windows 10以降で同じ問題が解決しない。
cygwin
などのエミュレータコンソールツールを使用し、デフォルトのLinuxの方法で実行します。
export http_proxy=<proxy>
export https_proxy=<proxy>
pip install <package>
そして、物事はうまく機能しています。
リモートWindows環境でも同じ問題が発生しました。ここまたは他の類似の投稿で見つかった多くのソリューションを試しましたが、何も機能しませんでした。最後に、解決策は非常に簡単でした。 NO_PROXY
をcmdで設定する必要がありました。
set NO_PROXY="<domain>\<username>:<password>@<Host>:<port>"
pip install <packagename>
二重引用符を使用し、NO_PROXY
を大文字に設定する必要があります。コンソールを使用するたびに設定する代わりに、NO_PROXY
を環境変数として追加することもできます。
ここに投稿された他のソリューションが機能する場合、これが役立つことを願っています。
私の場合、管理者としてのみコマンドプロンプト(cmd)を開いたときに機能し、プロキシ設定に関する追加情報は必要ありませんでした。
cntlmのインストール: Cntlm:Cの高速NTLM認証プロキシ
Cntlm.iniの構成:
ユーザー名ob66759
ドメインNAM
パスワードの秘密
プロキシproxy1.net:8080
プロキシproxy2.net:8080
NoProxy localhost、127.0.0。*、10。*、192.168。*
聞く3128
127.0.0.1を許可
#your IP
10.106.18.138を許可
始めよう:
cntlm -v -c cntlm.ini
Cmd.exeで:
pip install --upgrade pip --proxy 127.0.0.1:3128
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
動作します!
パスワードを非表示にすることもできます: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/