この記事では、制限されたネットワークでシームレスなパッケージ管理を行うために、pipでプロキシを設定・使用する方法を学びます。
パブリックプロキシとプライベートプロキシの違い
プロキシを選択する際、パブリックかプライベートかを判断することは重要な考慮事項です。
パブリックプロキシ
パブリックプロキシは誰でも利用でき、多くの場合認証機能がありません。IPアドレスへの迅速なアクセスを提供できますが、速度の低下、接続の不安定さ、IP禁止の可能性といった欠点があります。無料で広く利用可能であるため、プロキシローテーション、キャッシング、アクセス制御といった重要な機能が不足していることが多く、本番環境での信頼性が低くなります。
パブリックURLは次のようにフォーマットされます: https://proxyserver:port。
プライベートプロキシ
プライベートプロキシは認証が必要で、より高いセキュリティ、安定性、高度な機能を提供します。ただし、通常はコストがかかります。専用IPアドレスへの安全で高速、信頼性の高い接続と、プロキシ認証やローテーションなどの機能を提供します。
アクセスは通常、プロキシURLの接頭辞としてユーザー名とパスワードを含める認証によって制御されます。例: https://username:password@proxyserver:port。
pipでプロキシを使用する
pipでプロキシの使用を開始するには、プロキシに関するいくつかの詳細情報を収集する必要があります。次の例では、以下の詳細を持つパブリックプロキシを使用します:
- プロキシサービスの プロキシアドレス
- プロキシサービスが通信に必要とする ポート
次の proxy-list リポジトリ は、テストに役立つ毎日テストされたパブリックプロキシアドレスを提供していますが、本番環境では使用すべきではありません。
proxy-list リポジトリ内で、 proxy-list-status.txt ファイルを確認して、動作するパブリックプロキシを見つけてください。これは、ファイル内で success フラグが付いているアドレスを確認することで行えます。これは動作していることを示します:

このチュートリアルでは、パブリックプロキシアドレスとして 45.185.162.203:999 を使用します。これは、プロキシサーバーのアドレスが http://45.185.162.203:999 であることを意味します。
コマンドラインでpipプロキシを設定する
pipプロキシを設定する最も速い方法は、 --proxy コマンドラインオプションを使用して pip install コマンドを呼び出す際にアドレスを渡すことです。
パブリックプロキシアドレスを使用して、次のコマンドでプロキシとパッケージへのアクセスをテストします:
# Public Proxy
pip install boto3 --proxy http://45.185.162.203:999
この方法は、新しいプロキシを永続的に設定する前に、プロキシを迅速にテストして検証するのに役立ちます。pipパッケージを公開する場合、別のIPからの利用可能性を確認するのに役立ちます。
pip設定ファイルでpipプロキシを設定する
pipプロキシを永続的に設定するには、pip設定ファイルが簡単で宣言的なソリューションです。その場所はオペレーティングシステムによって異なり、以下のディレクトリで見つけることができます:
- グローバル: ユーザー間で共有されるシステム全体の設定ファイル。
- ユーザー: pipプロセスを実行するユーザーごとの設定ファイル。
- サイト: Python仮想環境を使用する環境ごとの設定ファイル。
これらの設定ファイルは、各システムの以下の場所で見つけたり作成したりできます:
Linux/macOS
Linuxベースのシステムでは、pip設定ファイルは pip.conf と呼ばれ、以下の場所で見つけることができます:
- グローバル:
- Debianベースのシステム:
pip.confを`/etc`ディレクトリで編集または作成します。 - macOSベースのシステム:
/Library/Application Support/pip/pip.confを編集または作成します。
- Debianベースのシステム:
- ユーザー:
- Debianベースのシステム:
~/pip/pip.confファイルを編集または作成します。 - macOSベースのシステム:
~/.config/pip/pip.conf設定ファイルを編集または作成します。
- Debianベースのシステム:
- サイト: Python仮想環境で読み込まれる場合、
$VIRTUAL_ENV/pip.confにあります。
Windows
Windowsシステムでは、ファイルは pip.ini ファイルで、以下の場所で見つけることができます:
- グローバル:
C:ProgramDatapippip.iniファイルを編集または作成します。このファイルはWindowsシステムではデフォルトで非表示になっていますが、書き込み可能です。 - ユーザー:
%APPDATA%pip内のpip.iniを編集または作成します。 - サイト: Python仮想環境で読み込まれる場合、
%VIRTUAL_ENV%pip.iniで設定ファイルを編集または作成します。
注:既知の場所のリストを確認する代わりに、pipに有効な場所をリストするように依頼できます:
pip config -v list
設定ファイルの内容
この例では、Python仮想環境のpip設定ファイルを使用します。アクティブ化された仮想環境で、Debianベースのシステムでは $VIRTUAL_ENV/pip.conf を、Windowsでは %VIRTUAL_ENV%pip.ini を編集します。
設定ファイルで、 proxy キーを希望のHTTPまたはHTTPSプロキシで更新する必要があります:
[global]
proxy = http://45.185.162.203:999
ファイルが保存されると、プロキシはすべてのpipコマンドで自動的に使用され、前述のプロキシフラグが不要になります:
(venv) $ pip install boto3
pip設定ファイルで利用可能な設定オプションの詳細については、 プロジェクトのドキュメント をご覧ください。
環境変数でpipプロキシを設定する
システム環境変数を設定することで、pipおよびシステム上の他のすべてのHTTPリクエストでプロキシが使用されるようにします。これは、 HTTP_PROXY と HTTPS_PROXY の両方の環境変数を利用することで行われ、これらはpipなどのソフトウェアによって、HTTPリクエストを行う際に使用するシステムプロキシとして参照されることがよくあります。
Linux/macOS
Linuxオペレーティングシステムを使用している場合は、 /etc/environment ファイルを更新します。macOSユーザーの場合は、ホームディレクトリにある .zshrc ファイルを更新します。その後、プロキシサーバーの新しいエントリで更新します:
HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port
ターミナルセッションを再起動するか、システムを再起動すると、環境変数が反映されます。
Windows
Windowsシステムでは、コマンドプロンプトターミナルで以下のコマンドを使用して環境変数を設定できます:
$env:HTTP_PROXY "https://proxyserver:port" /M
$env:HTTPS_PROXY "https://proxyserver:port" /M
変更を反映させるには、コマンドプロンプトを再起動してください。
設定のテスト
pip設定ファイルまたは環境変数を通じてシステムレベルの設定を有効にしたら、プロキシが正常に接続し、プロキシ経由でデータを受信できることをテストする必要があります。
Linux/macOS
Linux/macOSでは、以下のコマンドを使用します:
$ python -m venv venv
$ source venve/scripts/activate
# for pip config file or environment variables
(venv) $ pip install requests
特定のプロキシでこれらの設定を上書きしたい場合は、CLIフラグを使用することができます:
# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port
このコマンドでは、 https://proxyserver:port をご自身のプロキシで更新してください。
Windows
Windowsでは、以下のコマンドを使用します:
> python -m venv venv
> .venvScriptsActivate.bat
(venv) > pip install requests
これらの設定は、pip CLIフラグを使用していつでも上書きできます:
# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port
pipプロキシのトラブルシューティング
pipでHTTPまたはHTTPSプロキシに接続する際、特にプライベートプロキシやHTTPSプロキシをその高度な機能のために使用しようとする場合、以下のような一般的な問題に遭遇することがあります。
認証の問題
認証の問題は、pipでプロキシに接続しようとする際に、一般的に 407 Proxy Authentication Required エラーとして表示されます。これは、プロキシが接続にユーザー名とパスワードを必要とすること、またはプロキシに対して誤った認証情報を提供したことを示しています。
証明書の問題
HTTPSプロキシに接続する際、pipから Certificate verify failed エラーを受け取ることがあります。これは、プロキシサーバーが提供する証明書に問題があることを示しています。
プライベートプロキシサーバーが自己署名証明書を使用している場合、このエラーが発生する可能性があり、証明書を認証局で検証できません。特定のドメインに接続する際には --trusted-host CLIオプションを使用し、自己署名証明書エラーを無視することができます。
ローテーションプロキシでpipを使用する
ローテーションプロキシは、各リクエストに対して自動的にIPアドレスを切り替えることでIP禁止を回避するのに役立ちます。これにより複数のユーザーを模倣し、制限を回避します。
これは、リストからプロキシをランダムに選択することで実装できます。以下は、パブリックプロキシをローテーションしながらpipパッケージをインストールするシンプルなbashスクリプトです。
rotate-proxies.sh という名前の以下のbashスクリプトを作成します:
proxy_list=(
'http://45.185.162.203:999'
'http://177.23.176.58:8080'
'http://83.143.24.66:80'
)
pip_packages=(
'requests'
'numpy'
'pandas'
)
chmod +x rotate-proxies.sh
# Loop through packages and install them
for package in "${pip_packages[@]}"
do
# Randomly select a proxy from the list
proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
echo -e "nInstalling $package with proxy $proxy"
pip install --proxy $proxy $package
done
作成後、ファイルを実行してpipパッケージをダウンロードし、各pipコマンドに対してランダムなプロキシをローテーションできます。スクリプトの出力の概要は以下の通りです:
$ ./rotate-proxies.sh
Installing requests with proxy http://177.23.176.58:8080
Collecting requests
Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
….
Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2026.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0
Installing six with proxy http://45.185.162.203:999
Collecting numpy
Downloading numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB)
…
Installing collected packages: numpy
Successfully installed numpy-2.2.2
Installing pandas with proxy http://83.143.24.66:80
Collecting pandas
Downloading pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB)
….
Installing collected packages: pytz, tzdata, six, python-dateutil, pandas
Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2026.1 six-1.17.0 tzdata-2026.1
pipでプロキシを使用する利点
プロキシは、開発者がネットワーク制限を回避し、ブロックされたリソースにアクセスし、パッケージのダウンロード速度を向上させるのに役立ちます。プライベートプロキシは、キャッシング、より高速な接続、そして身元を隠すことによるセキュリティの強化を提供します。
VPNと比較すると、プロキシはpipリクエストにとって軽量な代替手段です。VPNはすべてのインターネットトラフィックを暗号化してより広範なプライバシーを提供しますが、遅延の増加によりパッケージのインストールが遅くなる可能性があります。プロキシは、依存関係を管理するためのより速く効率的なソリューションを提供します。
よくある間違いとベストプラクティス
pipでプロキシを使用する際、セキュリティの脆弱性につながる可能性があるため、よくある間違いに注意することが重要です。不正なプロキシURLや、HTTPまたはHTTPSプロトコルの欠落や誤りといった誤った設定のURL形式などのエラーは、パッケージリポジトリへの接続を妨げる可能性があります。
よくあるセキュリティ上の問題は、プロキシの認証情報(例えばユーザー名とパスワード)をソースコード、スクリプト、または継続的インテグレーション・継続的デリバリー(CI/CD)パイプラインの定義にハードコーディングすることです。このコードが再配布されると、プロキシへの不正アクセスが発生する可能性があります。認証情報が漏洩した場合、プロキシが悪用され、コストの増加やサイバー攻撃による悪用につながる可能性があります。
これらの間違いを避けるために、プロキシの認証情報はコードに直接記述するのではなく、環境変数や暗号化された設定ファイルに保存して安全に保つことが推奨されます。さらに、適切な設定を確認し、ランタイムエラーを避けるために、pipを使用する前にプロキシの接続性をテストする必要があります。 curl や ping などのツールを使用して、サービスに投入する前にプロキシのパフォーマンスを確認できます。これにより、よりスムーズなパッケージ管理体験が可能になります。
Bright Dataプロキシを使用する
高品質で機能豊富なプロキシのプロバイダーをお探しの場合は、 Bright Data をご確認ください。これは、レジデンシャル、データセンター、モバイルデバイスを含む幅広いIPアドレスを提供するプロキシソリューションです。また、ローテーションプロキシや Web Unlocker API を含む、データ収集とウェブスクレイピングのための専門ツールも提供しています。
Bright Dataは、プロジェクトのニーズに合わせて簡単にプロキシを作成するのに役立ちます。その簡単さをお見せするために、pipで異なるIPアドレスを介してパッケージにアクセスするために使用できるプライベート レジデンシャルプロキシ を作成してみましょう。
まずBright Dataにサインアップします。次にユーザーダッシュボードに移動します。
サイドメニューで、 プロキシ&スクレイピング をクリックします:

フォームが読み込まれたら、新しいレジデンシャルプロキシを設定します。デフォルト設定を使用すると、複数のBright Dataユーザーが使用する共有IPアドレスのプロキシを取得します:

特定の地域をターゲットにしている場合は、IPアドレスを配置したい国を指定することもできます。
作成後、新しく作成されたプロキシのエンドポイントと認証情報を含むダッシュボードにリダイレクトされます。ユーザー名、パスワード、サーバーアドレスの両方をメモしてください:

これらのエンドポイント値を使用して、 --proxy フラグでその可用性をテストします:
$ pip install pandas
--trusted-host pypi.org
--trusted-host files.pythonhosted.org
--proxy https://username:[email protected]:33335
Bright Dataプロキシは自己署名証明書を使用しているため、 trusted-host フラグを使用して pypi.org と files.pythonhosted.org を信頼されたドメインとしてホワイトリストに登録できます。
結論
pipでプロキシを使用すると、匿名性と制御が強化され、IP制限やジオブロッキングを回避できるようになります。ニーズに応じて、パブリックプロキシとプライベートプロキシを選択できます。
プライベートプロキシは、ローテーションIP、改善されたキャッシング、より高速な速度、より高い安定性などの利点を提供しますが、コストはIPの可用性と地理的な場所によって異なります。
pip用のプロキシの設定は簡単で、CLIフラグ、pip設定ファイル、環境変数など複数のオプションがあります。ただし、パブリックプロキシには制限があり、前述の通り、大規模なワークロードや本番環境での使用には理想的ではありません。より信頼性の高いソリューションとして、Bright DataはレジデンシャルとデータセンターIPを提供し、高速で安定した接続とウェブスクレイピングおよびデータ収集のための高度なツールを提供しています。