Jura Jura - 11 days ago 11
Python Question

Using pip behind a proxy

I'm trying to use pip behind a proxy at work. I'm not a networking expert so bear with me if this super obvious.

One of the answers from this post suggested using CNTLM. I installed and configured it per this other post, but running

cntlm.exe -c cntlm.ini -I -M http://google.com
gave the error
Connection to proxy failed, bailing out
.

I also tried
pip install -–proxy=user:pass@localhost:3128
(the default CNTLM port) but that raised
Cannot fetch index base URL http://pypi.python.org/simple/
. Clearly something's up with the proxy.

Does anyone know how to check more definitively whether CNTLM is set up right, or if there's another way around this altogether? I know you can also set the
http_proxy
environment variable as described here but I'm not sure what credentials to put in. The ones from
cntlm.ini
?

Thanks!

Answer

To setup CNTLM for windows, follow this article. For Ubuntu, read my blog post.

Edit:

Basically, to use CNTLM in any platform, you need to setup your username and hashed password, before using http://127.0.0.1:3128 as a proxy to your parent proxy.

  1. Edit the config and add important information like domain, username, password and parent proxy.

  2. Generate hashed password.

    Windows cntlm –c cntlm.ini –H

    Ubuntu/Linux cntlm -v -H -c /etc/cntlm.conf

  3. Remove plain text password from the config and replace them with the generated passwords.

To check if working:

Windows cntlm –M http://www.google.com

Ubuntu/Linux sudo cntlm -M http://www.google.com/

For more detailed instructions, see links above.

Update:

Just for completeness sake, I was able to configure and use CNTLM in Windows recently. I encountered a problem during the syncing process of Kindle for PC because of our proxy and installing and configuring CNTLM for Windows fixed that issue for me. Refer to my article for more details.

Comments