If you’ve ever been stumped by a pip install
command hanging indefinitely or failing with a connection error, there’s a high chance you’re working on a network that requires a proxy. Many corporate and academic networks route all external traffic through a proxy for security and monitoring. This guide covers the three primary methods to configure pip
to work seamlessly with a proxy, so you can get back to what matters: coding.

Method 1: The Quick Fix (The --proxy
Flag)
For a one-off installation or to quickly test a proxy connection, you can use the --proxy
command-line flag. This method is temporary and applies only to the single command you run.
How to Use It: The syntax is
pip install --proxy [protocol]://[user:password@]host:port <package_name>
.
Let’s say you have a proxy from IPFLY with the following details:
Host: gw.ipfly.com
Port: 8080
Username: ipfly_user
Password: ipfly_pass123
Your command would be: pip install --proxy
http://ipfly_user
:
ipfly_pass123@gw.ipfly.com:8080
beautifulsoup4
This is great for quick tasks but impractical for daily use.
Method 2: The Permanent Solution (The pip
Config File)
For a permanent, “set it and forget it” solution, configuring the pip
configuration file is the best practice. This file is named pip.ini
on Windows and pip.conf
on macOS and Linux.
Step 1: Locate or Create the Config Filepip
looks for this file in several locations.
On Linux/macOS:
System-wide: /etc/pip.conf
User-specific: ~/.config/pip/pip.conf
or ~/.pip/pip.conf
On Windows:
System-wide: C:\ProgramData\pip\pip.ini
User-specific: C:\Users\<YourUser>\AppData\Roaming\pip\pip.ini
or C:\Users\<YourUser>\pip\pip.ini
The user-specific location is recommended. If the file or directories don’t exist, simply create them.
Step 2: Add Your Proxy Configuration
Open the file and add the following lines, using your proxy details from a provider like IPFLY:
Ini, TOML
[global]proxy = http://ipfly_user:ipfly_pass123@gw.ipfly.com:8080
Now, any pip
command (install
, sea
rch
, download
, etc.) will automatically use this proxy without needing the command-line flag.
Method 3: The Flexible Approach (Environment Variables)
A third common method is to use system environment variables. Many command-line tools, including pip
, are designed to respect the HTTP_PROXY
and HTTPS_PROXY
variables.
How to Use It:
On Linux/macOS:export HTTPS_PROXY=http://ipfly_user:ipfly_pass123@gw.ipfly.com:8080
On Windows (Command Prompt):set HTTPS_PROXY=http://ipfly_user:ipfly_pass123@gw.ipfly.com:8080
This approach is flexible because it applies to the entire terminal session and will be used by many other tools, not just pip
.
Troubleshooting Common Issues
Authentication Errors: If you see a 407 Proxy Authentication Required
error, double-check that your username and password are correct and do not contain any special characters that need to be URL-encoded.
Connection Errors: A “Cannot connect to proxy” error usually points to an incorrect host, port, or a firewall rule blocking the connection. Verify your details from your provider.
SSL Errors: In some strict corporate environments, you might encounter SSL errors. This can happen if the proxy performs SSL inspection. You may need to point pip
to your company’s certificate bundle using the --cert
option as an advanced solution.

Configuring pip
to work with a proxy is a fundamental skill for many Python developers. While the command-line flag is useful for quick tests, setting up the pip.conf
file or using environment variables provides a more robust and efficient long-term solution. To ensure a fast and uninterrupted workflow, always rely on a high-performance proxy provider like IPFLY, which gives you the stable connection and clear credentials needed to integrate seamlessly with your development tools.