conda update CondaHTTPError: HTTP None
Asked Answered
C

24

80

Midway through running Conda Update --all, the update stalled. Multiple packages had been updated. Now, when I run conda update --all or conda update conda, I get this response:

(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda update conda
Fetching package metadata ...

CondaHTTPError: HTTP None None for url <None>
Elapsed: None

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),),)

I've repeated conda update conda over multiple days, with no change in results. I can see there is no HTTP, however conda info --a shows channel URLs.

(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda info -a
Current conda install:

           platform : win-64
      conda version : 4.3.13
   conda is private : False
  conda-env version : 4.3.13
conda-build version : 2.1.5
     python version : 3.5.3.final.0
   requests version : 2.13.0
   root environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3  (writable)
default environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3
   envs directories : C:\Users\*****\AppData\Local\Continuum\Anaconda3\envs
                      C:\Users\*****\AppData\Local\conda\conda\envs
                      C:\Users\*****\.conda\envs
      package cache : C:\Users\*****\AppData\Local\Continuum\Anaconda3\pkgs
                      C:\Users\*****\AppData\Local\conda\conda\pkgs
       channel URLs : https://conda.anaconda.org/anaconda-fusion/win-64
                      https://conda.anaconda.org/anaconda-fusion/noarch
                      https://repo.continuum.io/pkgs/free/win-64
                      https://repo.continuum.io/pkgs/free/noarch
                      https://repo.continuum.io/pkgs/r/win-64
                      https://repo.continuum.io/pkgs/r/noarch
                      https://repo.continuum.io/pkgs/pro/win-64
                      https://repo.continuum.io/pkgs/pro/noarch
                      https://repo.continuum.io/pkgs/msys2/win-64
                      https://repo.continuum.io/pkgs/msys2/noarch
        config file : C:\Users\*****\.condarc
       offline mode : False
         user-agent : conda/4.3.13 requests/2.13.0 CPython/3.5.3 Windows/7 Windows/6.1.7601

How do I get conda update to call a correct HTTP address?

Cosmology answered 2/3, 2017 at 18:59 Comment(2)
I had the same error but in my case it was the the firewall in bitdefender antivirus software causing the trouble. I was using miniconda3 on Ubuntu 22.04 (Windows Subsystem for Linux) installed so somehow bitdefender didn't recognize that as a legitimate software. After making a rule to allow svchost.exe, everything went to normal. Leaving this comment for anyone who faces the same issue.Marieann
for me, the issue was my VPN, I just had to disconnect (none of the below solutions worked)Radicle
W
93

My original answer got flagged as duplicate because I answered a similar question with the same answer, I wasn't aware that this is not allowed. I have marked my other response as a duplicate. Hopefully, this stays up!

I almost spent two days running in circles trying all the solutions I could find on the Internet, but here is what worked for me.

So, CondaHTTPError aka SSL module is not available error is caused by the missing/misplacement of libcrypto file in anaconda3/DLLs folder:

Tl;dr:

From anaconda3\Library\bin copy below files and paste them in anaconda3/DLLs:

-   libcrypto-1_1-x64.dll
-   libssl-1_1-x64.dll 

Detailed answer:

  1. Uninstall any Python versions you have (e.g. Python 3.7 or Python 3.8)

    go to Control Panel--> Program and Features--> Select Python-->

uninstall

  1. Uninstall any Anaconda versions you might have (e.g. Anaconda or miniConda) For Anaconda:

    go to Control Panel--> Program and Features--> Select Anaconda-->uninstall

    For miniConda

    go to Control Panel--> Program and Features--> Select miniconda--> uninstall

  2. Delete any leftover Environment variables

    go to Control Panel--> System--> Advanced System settings (on left side)--> in System Properties click on Environment Variables button--> in User Variable select Path and click the Edit button--> delete any path related to Anaconda, miniConda or Python.

    E.g.
    C:\Users\Bob \AppData\Local\Programs\Anaconda\...
    C:\Users\Bob \AppData\Local\Programs\miniconda\...
    

    b. If you don’t see any paths related to Anaconda, miniConda or Python; you are good to go.

  3. Reboot your machine

  4. Download the latest version of Anaconda

  5. Run the Installer; keep all the default settings

  6. Go to your anaconda3/library/bin folder:

    E.g.C:\Users\Bob\AppData\Local\Continuum\anaconda3\Library\bin

  7. Copy these files:

    libcrypto-1_1-x64.dll

    libssl-1_1-x64.dll

  8. paste these in anaconda3/DLLs folder:

  9. Reopen the Anaconda Prompt and test with any command that requires an Internet connection. E.g. conda update conda Or with conda update --all

Wellappointed answered 21/2, 2020 at 16:41 Comment(5)
the TLDR did it for me when creating my first env after a fresh install of miniconda, thank youMonocarpic
In my case, I had to also move libssl-1_1-x64.dll and pdb from \anaconda3\Library\bin to \anaconda3\DLLsRedeeming
This worked on a fresh install of anaconda and started from step 7.Scheel
Is this just an Anaconda bug? It's hard to believe since it's been 2 years.Panama
Worked for me, I only copied filed, did not even restart promptNourishing
B
80

Use the code below in your command line :

conda config --set ssl_verify no
Borak answered 31/8, 2017 at 4:48 Comment(3)
Note that this opens you up to some pretty serious attacks.Factitive
@Factitive @Borak How do you reverse this after finishing to avoid attacks? Just the following code? conda config --set ssl_verify yesParochialism
The answer from Pardesi_desi works on Win10/Win2K19Rolandorolandson
F
31

Check if you're behind a corporate firewall that has an HTTPS/SSL proxy. If so, you may need to change the line in .condarc from ssl_verify: true to ssl_verify: false.

Or, as suggested by th0masb in the comments, using the command:

conda config --set ssl_verify false
Fewell answered 12/7, 2017 at 17:6 Comment(5)
This worked for me, more specifically the command: conda config --set ssl_verify falseTeage
as said below in other answers, this makes you vulnerable to serious attacksShiloh
How do I do that?Blintz
Tkx very much. It solves the problem for me (after trying many other suggestions before...)Smirch
Thank you! It solved my HTTP problem and sped up downloading packages using conda.Luane
M
15

Try to start Anaconda Prompt as Administrator (click right button of mouse before starting it), and make the same order.

Mcswain answered 22/3, 2017 at 15:28 Comment(1)
Worked for me - specifically using the Anaconda prompt. Earlier I was using the Windows PowerShell, which kept throwing the mentioned error.Fading
K
7

Install the latest OpenSSl from this site: https://slproweb.com/products/Win32OpenSSL.html the current latest version is 1.1.1. Now I can install packages via pip and conda successfully.

Kaduna answered 27/2, 2019 at 13:30 Comment(1)
Installing OpenSSL did not help on my machine. The answer from Pardesi_Desi (starting at step 7) worked fine.Rolandorolandson
K
6

I faced the same problem on Mac OS X and with Miniconda. After trying many of the proposed solutions for hours I found that I needed to correctly set Condas environment to use the Root certificate that my company provided rather than the generic ones that Conda provides.

Here is how I solved it:

  1. Open Chrome, got to any website, click on the lock icon on the left of the URL. Click on «Certificate» on the dropdown. In the next window you see a stack of certificates. The uppermost (aka top line in window) is the root certificate (e.g. Zscaler Root CA in my case, yours will very likely be a different one).
  2. Open Mac OS keychain, click on «Certificates» and choose among the many certificates the root certificate that you just identified. Export this to any folder of your choosing.
  3. Convert this certificate with openssl: openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem

  4. For a quick check set your shell to acknowledge the certificate: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem

  5. To set this permanently open your shell profile (.bshrs or e.g. .zshrc) and add this line: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem. Now exit your terminal/shell and reopen. Check again.

You should be set and Conda should work fine.

PS: I'm aware that OP works on Windows. Nonetheless I leave this solution here because I think it can help solving the underlying root cause.

Kalpak answered 1/8, 2019 at 9:26 Comment(2)
You are my hero. This worked for me but I was able to export to pem and skip the openssl step.Ruprecht
It also is the correct solution, conda relies on on requests and this environment variable is the way to configure it.Bichromate
W
2

Type "conda config --show" to check the configuration information and make sure the addresses in the channels can be accessed normally.

Wait answered 23/3, 2017 at 4:47 Comment(0)
D
2

I am using python 3.7.4 and I have just downloaded the conda and tried setting up the tensorflow but got http error. I tried several steps mentioned above but it dint solve my problem. I solved it by first activating conda. if you are using conda for first time you need to activate it using conda init command and then disable SSL verification conda config --set ssl_verify false After above steps my tfp setup worked perfectly!!!

Deste answered 21/10, 2019 at 19:22 Comment(0)
N
1

You should check your .condarc file located in your Miniconda3/Anaconda3 root directory. There should be a line with just a hyphen. This line corresponds to the None channel. Deleting the line fixed the issue for me.

Naturalist answered 21/3, 2017 at 16:13 Comment(0)
P
1
  • Download cacert.pem from https://curl.haxx.se/ca/cacert.pem,
  • save to /this/is/cert/path
  • open ~/.bashrc or any profile file you have
  • add export REQUESTS_CA_BUNDLE=/this/is/cert/path ...
  • open new terminal
  • conda update conda
Perutz answered 26/5, 2017 at 16:32 Comment(0)
A
1

For the type of error above, you have to remove the proxy in environment variable. To do this follow this step :-

Open the Environment Variables window==>>>>>

To make many of the edits shown in this article, you first need to open the Environment Variables window. This guide explains how to open this window and shows you the basics about working with environment variables: Simple questions: What are environment variables in Windows?

If you want to skip reading it, one path that works the same in all versions of Windows is to open the Control Panel and go to “System and Security - > System.” There, click or tap the “Advanced system settings” link on the left. The System Properties window is opened. There click the Environment Variables button. enter image description here enter image description here

In this you have to select that one which have proxy , and delete ,then click Ok. Now restart your Anaconda prompt. It worked for me; I hope it also work for you.
Good luck

Anklet answered 12/6, 2018 at 17:32 Comment(0)
L
1

Enable 'k' flag in your conda update command. For example,

conda update anaconda-navigator -k

That will allow conda to make insecure connections to download packages. This is especially useful when you are behind a proxy server.

Lola answered 10/10, 2018 at 20:6 Comment(0)
V
1

Try to type "conda update conda" from the (base) environment

Voice answered 24/4, 2019 at 12:59 Comment(0)
A
1

The DLLs delivered by Anaconda3 are located here: D:\Anaconda3\Library\bin

My workaround: I have copied the following files

libcrypto-1_1-x64.* libssl-1_1-x64.* from D:\Anaconda3\Library\bin to D:\Anaconda3\DLLs.

And it works as a charm!

Atheistic answered 6/7, 2020 at 17:47 Comment(0)
F
1

Just need to add binaries into you path, and done - it will take care about your openssl and everything.

C:\Users\{username}\Miniconda3\Library\bin

Search environment variables, in both User and System variables. Add the bin location in Path. Put the path at the end without changing anything. Save Apply and re-open your terminal. It should be now allowing you to install libraries easily.

enter image description here

Fideicommissum answered 25/11, 2022 at 15:6 Comment(0)
C
0

I had the same error, and I tried most of the methods, but none of them worked. I checked the version of anaconda3 it was 4.2.0 which I realized was in beta which might be the reason.

I solved it by uninstalling everything and installing the latest version (5.1.0). It worked after that.

Corri answered 15/2, 2018 at 17:50 Comment(0)
R
0

Refer link for details

Please update to the latest version of Navigator.

On Navigator click on the update button on the top right of the interface or on the terminal type

$ conda update anaconda-navigator

Revocation answered 31/7, 2018 at 4:59 Comment(0)
A
0

After reading FAR too many posts running around in circles, I found a simple solution at least to my flavor of this problem, which should also shed some light on root cause.

Using sudo of same command (see below)

conda create -n tensorenviron

(output below) Solving environment: done

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/r/osx-64/repodata.json.bz2>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/r/osx-64/repodata.json.bz2 (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))

sudo conda create -n tensorenviron

(output below) Password: Solving environment: done

## Package Plan ##

environment location: /Users/damonw/anaconda3/envs/tensorenviron


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate tensorenviron
#
# To deactivate an active environment, use:
# > source deactivate
#
Argumentative answered 2/1, 2019 at 17:47 Comment(0)
M
0

I also faced the same problem and manually followed these steps to reach the desired result. you can enter --> https://repo.anaconda.com/pkgs/main/win-64/ you can install packeges whatever you want and later : you can write to Anaconda Prompt -->

conda install C:\Users\xxxx\Downloads\xlrd-1.2.0-py37_0.tar.bz2

Have a good luck!

Mcgrew answered 18/12, 2020 at 12:42 Comment(0)
H
0

Just in case anyone else is stuck behind a company proxy and the previous answers have not worked then try changing your proxies. Interestingly, I had already set my proxies in my environment variables but deleting them and then recreating them worked for some reason for me.

Hyoscyamus answered 8/12, 2021 at 20:59 Comment(0)
Z
0

In my case, it was a proxy server setting that was blocking the installation. Switching the proxy server off and then connecting to a different WiFi got it working for me!

Zoe answered 12/1, 2022 at 9:4 Comment(0)
R
0

Tried everything to fix this issue. Hours of wasted time.

Reset Windows 10 firewall
downgraded/upgraded pip
downgraded/upgraded conda
tried new environments
installed pip from pypi (get-pip.py)
upgraded Debian on Windows environment

Nothing fixed it. Then noticed that other conda environments worked perfectly. The issue was the pip cache was mangled if you reinstalled an environment with a name you used before and did some sort of upgrade of conda/distro in-between. Under linux i ran the following to fix the issue:

rm -rf $HOME/.cache

and looks like there is a similar setup for Windows based on the info you gave above.

Rittenhouse answered 25/8, 2022 at 17:28 Comment(0)
C
0

As suggested by others this could happen when you've a firewall with SSL proxy on your system. A quick fix in this case would be to change the conda config to ignore SSL verification by:

conda config --set ssl_verify false

But doing this exposes you to potential vulnerabilities, hence it is recommended to run this after you've successfully performed the operation that was giving you CondaHTTPError earlier:

conda config --set ssl_verify true

This will re-enable SSL verification in conda

Cockerel answered 3/3, 2023 at 12:0 Comment(0)
T
-1

I solved this by changing the proxy. Change

https_proxy=https://xxx.xxx

to

https_proxy=http://xxx.xxx

make it works.

Taboo answered 15/10, 2021 at 1:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.