ChatGPT解决这个技术问题 Extra ChatGPT

Running conda with proxy

I'm using Anaconda 2.7 on windows, and my internet connection uses a proxy.

Previously, when using python 2.7 (Not Anaconda), I installed package like this:

pip install {packagename} --proxy proxy-us.bla.com:123

Is there a way to run conda with proxy argument? didn't see it in conda help.

Thanks


D
David C

You can configure a proxy with conda by adding it to the .condarc, like

proxy_servers:
    http: http://user:pass@corp.com:8080
    https: https://user:pass@corp.com:8080

or set the HTTP_PROXY and HTTPS_PROXY environment variables. Note that in your case you need to add the scheme to the proxy url, like https://proxy-us.bla.com:123.

See http://conda.pydata.org/docs/config.html#configure-conda-for-use-behind-a-proxy-server.


Thanks... to be honest, I saw this like much earlier, but I'm more interested in command-line solution, without editing some files... Do you know such?
Setting those environment variables is a command line solution.
If you are failing on an SSLError message, make sure you set ssl_verify: False. It maybe the case that your employer is decrypting your connection so the SSL certificate is not the one expected (man-in-the-middle attack)
I would avoid setting ssl_verify: False, unless you know for a fact that your employer is the one man in the middling you. By disabling ssl verification, you are completely disabling the security checks that ensure that conda ia downloading the packages it is supposed to. Remember that the packages conda downloads can run arbitrary code!
If I don't want to put my user name and password in the .condarc for security reason, and prefer to be asked to type them when needed, what should I do?
s
su79eu7k

Or you can use the command line below from version 4.4.x.

conda config --set proxy_servers.http http://id:pw@address:port
conda config --set proxy_servers.https https://id:pw@address:port

This did the job for me! :)
Probably a bit late now, but I wonder if phyatt had an updated version of anaconda? On 4.3.30 I get CondaValueError: Key 'proxy_servers.http' is not a known primitive parameter.
This worked for me! Weird enough, when I set the values directly in the file, they were not recognized. (conda 4.8.2)
This is working for both Windows and Linux. Thank you sm.
I'm running a px (github.com/genotrance/px) proxy on my host to authenticate with credentials behind corporate firewall. My px is listening on port 3131. I use RUN conda config --set proxy_servers.http host.docker.internal:3131 RUN conda config --set proxy_servers.https host.docker.internal:3131 RUN conda env create -f environment.yml
z
zx485

One mistake I was making was saving the file as a.condarc or b.condarc.

Save it only as .condarc and paste the following code in the file and save the file in your home directory. Make necessary changes to hostname, user etc.

channels:
- defaults

show_channel_urls: True
allow_other_channels: True

proxy_servers:
    http: http://user:pass@hostname:port
    https: http://user:pass@hostname:port


ssl_verify: False

Isn't setting ssl_very to false inviting a man-in-the-middle attack?
K
K.Dᴀᴠɪs

I was able to get it working without putting in the username and password:

conda config --set proxy_servers.https https://address:port

but are you still prompted to put your credentials, or is a login-free proxy server?
F
Frank Wang

The best way I settled with is to set proxy environment variables right before using conda or pip install/update commands. Simply run:

set HTTP_PROXY=http://username:password@proxy_url:port

For example, your actual command could be like

set HTTP_PROXY=http://yourname:your_password@proxy.your_company.com:8080

If your company uses https proxy, then also

set HTTPS_PROXY=https://username:password@proxy_url:port

Once you exit Anaconda prompt then this setting is gone, so your username/password won't be saved after the session.

I didn't choose other methods mentioned in Anaconda documentation or some other sources, because they all require hardcoding of username/password into

Windows environment variables (also this requires restart of Anaconda prompt for the first time)

Conda .condarc or .netrc configuration files (also this won't work for PIP)

A batch/script file loaded while starting Anaconda prompt (also this might require configuring the path)

All of these are unsafe and will require constant update later. And if you forget where to update? More troubleshooting will come your way...


This allows me to create anaconda environments, but I still cannot install stuff with conda install
You still have your username/password stored in your command history. It would be a lot safer to type at least the password into a prompt.
also this won't work for PIP should be highlighted with bold and caps
V
Vit

You can configure a proxy with conda by adding it to the .condarc, like

proxy_servers:
    http: http://user:pass@corp.com:8080
    https: https://user:pass@corp.com:8080

Then in cmd Anaconda Power Prompt (base) PS C:\Users\user> run:

conda update -n root conda

S
Sumit Chauhan

On Mac what worked for me was going to keychain and updating the password for the key that for the company's the internal repo.