SSL certificate issues preventing pip package installs on windows - python

I installed Python 3.8 from the python.org downloads site onto my 64-bit Windows machine today. Shortly thereafter, I attempted to install the pyodbc package using pip from a command console opened as an administrator:
pip install pyodbc
The following error broke my connection on several attempts:
'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local issuer certificate
(_ssl.c:1108)')': /simple/pyodbc/
(I don't believe these issues are specific to the pyodbc package, but that just happens to be the package I've been trying to install). After some googling I tried
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pyodbc
after which I received the error
ERROR: Could not find a version that satisfies the requirement pyodbc (from versions: none)
ERROR: No matching distribution found for pyodbc
Based on this SO answer, I decided to execute
curl https://bootstrap.pypa.io/get-pip.py | python
after which I received the error
next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
I'm not sure where to go from here. Python 3.8 is a fresh install, as is pip (which shows as version 19.2.3). Nevertheless there seems to be a problem confirming SSL certificates. How can I get pip installs working?

You have two separate issues:
You are behind a proxy/firewall or using an endpoint antivirus that messes with your CA cert store. Your --trusted-host is a workaround for that
pyodbc doesn't support Python 3.8 yet.

Related

Issue with Emscripten installation on mac

this is my first time diving into emscripten and web assembly and I am having some trouble with the installation process. I tried following the directions for mac on emscriptens website and I am able to do the pull command from github with no problem. However when trying to install emscripten with the "./emsdk install latest" command line it keeps failing.
Been at this for hours and I have updated just about everything and re-downloaded python to make sure it is the newest version. This is the error message I am getting:
Error: Downloading URL 'https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v14.18.2-darwin-x64.tar.gz': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
Warning: Possibly SSL/TLS issue. Update or install Python SSL root certificates (2048-bit or greater) supplied in Python folder or https://pypi.org/project/certifi/ and try again.
error: installation failed!
Any help is much appreciated! Thank you!
Please do not use python2. Install certifi with pip3 install certifi. Then just browse to Applications/Python 3.x and double-click Install Certificates.command
Now you can continue the installation.
Do not use Python 3. You must use Python 2.
python3 ./emsdk.py install latest
python3 ./emsdk.py activate latest
python ./emsdk.py install latest
python ./emsdk.py activate latest
See also Unable to install latest due to SSL certificate verify failed and Emsdk download fails on clean-is macOS Catalina 10.15.1

How to trust host using pip 1.4.1

I am stuck using pip 1.4.1 and have run up against a problem when upgrading package.
Could not fetch URL https://pypi.python.org/simple/pymongo/: There was a problem confirming
the ssl certificate: <urlopen error [Errno 1] _ssl.c:509: error:1407742E:SSL
routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version>
I have seen that later versions of pip you can do --trusted-host to ignore the certs warning. But on 1.4.1 it appears that this option is not available. How to fix?
The worst problem in your case is not untrusted host, the worst problem is too old versions of Python and OpenSSL. Your pip tried to use protocol version TLS v1 which PyPI stopped supporting long ago.
To install packages over the Net you need to upgrade OpenSSL, Python and pip. If you cannot upgrade you cannot install from PyPI directly. Then you can try to download packages from PyPI using a browser and install them from the local filesystem.
You can also use pip download on a host with more modern OpenSSL/Python/pip, transfer downloaded packages to the ancient host and install them there. See https://stackoverflow.com/a/14447068/7976758

issue with emsdk on mac

I am trying to setup emsdk on mac with the following command:
./emsdk install latest
I cloned the repo from git. However, I get the following error upon running the command mentioned above:
** NOTICE **: The default SDK changed from `fastcomp` to `upstream`.
If you have problems, or wish to revert back to fastcomp for some other reason
you can add `-fastcomp` to explicitly install that fastcomp-based
SDK, .e.g ./emsdk install latest-fastcomp.
Installing SDK 'sdk-releases-upstream-b024b71038d1291ed7ec23ecd553bf2c0c8d6da6-64bit'..
Installing tool 'releases-upstream-b024b71038d1291ed7ec23ecd553bf2c0c8d6da6-64bit'..
Error: Downloading URL 'https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/b024b71038d1291ed7ec23ecd553bf2c0c8d6da6/wasm-binaries.tbz2': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)>
Warning: Possibly SSL/TLS issue. Update or install Python SSL root certificates (2048-bit or greater) supplied in Python folder or https://pypi.org/project/certifi/ and try again.
Installation failed!
I have tried running the following to fix this but it did not solve the issue.
pip install certifi
Any other suggestions to fix the issue would be quite welcome.
I was able to upgrade the python version to 3.8.0 using pyenv. The upgrade helped me with the certificate issue.
brew install pyenv
pyenv install 3.8.0
pyenv global 3.8.0
or if inside the emsdk directory:
pyenv local 3.8.0
The command ./emsdk install latest ran successfully after the python upgrade.

SSL Errors on Python packages

I am a programming novice, and I'm trying to learn Python. When I attempt to install packages on Windows 10 (example: pip install -U XXX) I keep getting the following error:
Could not fetch URL https://pypi.python.org/simple/XXX/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) - skipping
Could not find a version that satisfies the requirement XXX (from versions: )
No matching distribution found for XXX
Does anyone have any idea how to fix this?
I've gathered that the problem is related to my internet configuration, but so far I've been unable to find any specific instructions on how to fix this. Again, I'm a beginner, so please no advanced jargon. Thanks in advance!
My first guess is something to do with the installation or setup. Besides, a new version of pip came out a couple of days ago and you should probably upgrade. Try getting the get-pip.py script from this page and follow the instructions to run it. Then try using the new pip (9.0) to get your XXX package above.
pip has a --cert flag that you can pass the CA bundle you're using i.e if you're using custom ssl certificates.
pip install <package-name> --cert <path-to.pem-cert-file>
If you have the SSL cert with you but it's a .cer file, worry not. Use the following command to convert it into a .pem file
openssl x509 -inform der -in certificate.cer -out certificate.pem

Python pip install error [SSL: CERTIFICATE_VERIFY_FAILED]

I have been trying to figure this out for a while now and for some reason I get stuck with an ssl issue and have no idea what is going on.
Problem:
I have installed python2.7 and easy_install2.7, but when trying to install pip with easy_install2.7 I get the following error.
[root#cops-wc-01]# /usr/local/bin/easy_install-2.7 pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Download error on https://pypi.python.org/simple/pip/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
Couldn't find index page for 'pip' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
No local packages or download links found for pip
error: Could not find suitable distribution for Requirement.parse('pip')
It is trying to download, but this SSL cert verification failure is preventing it.
Does anyone know a way around this, or a way to resolve it?
Sorry if it is a noob question :)
[root#cops-wc-01]# uname -a
Linux 2.6.32-504.30.3.el6.x86_64 #1 SMP Wed Jul 15 10:13:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root#cops-wc-01]#
Centos 6
apt-get install ca-certificates
If you missed this package.
On my device (that runs nix),
$ date showed ...1969
so I had to set the date to a more recent time :
$ date -s "26 MAR 2017 13:16:00"
Then the SSL error was gone.
YAS (Yet Another Solution)
I had the same issue.
Tried everything above.
My issue was fixed by upgrading pip and setuptools:
$ pip install -U pip setuptools
I also tried to add an entry in my ~/.pip/pip.conf file:
[global]
trusted=https://pypi.your.domain
Most likely pip does not have the required CA certificates to validate that.
You can force pip to use openssl's CAs to see if it helps.
The easiest solution that worked for me:
From https://pypi.python.org/pypi/pip, download 'pip-8.1.2.tar.gz'
Install it with pip, "pip install ./pip-8.1.2.tar.gz"
On the ubuntu server, the new version pip may be installed in a different location. If checking version with 'pip --version', it's still an older version one, like pip 1.5.6. To install a package with the new version pip, straightforwardly use the absolute path for convenience:
/home/tom/.local/bin/pip install ./gensim-0.13.1.tar.gz
Install dependencies one by one, errors like this below can be bypassed.
Download error on https://pypi.python.org/simple/pip/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!"
On macbook put this line in ~/.bash_profile:
export SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem
And forget about this error.
Of course, if you don't have openssl - run brew install openssl. And don't forget to do . .bash_profile after first edit of .bash_profile.
I ran the following commands to resolve the issue:
$ curl https://bootstrap.pypa.io/get-pip.py >> get-pip.py
$ python get-pip.py
This upgraded pip to v9.0.3, and this version has no issues.
Since this is currently the top hit on Google for this issue I thought I would share my solution. As weird as it is. I'm on CentOS 7, Python3.6 although I believe it doesn't matter which Python version.
The SSLError / CERTIFICATE_VERIFY_FAILED was also happening for me when I ran a fresh copy of get-pip.py.
The solution was to run the install command with output piped to a file, so python get-pip.py &> output. I haven't had the time to find out why not having a TTY affects the environment for the script.
If you are running behind a web filter or firewall, please ensure SSL inspection/decryption is disabled or bypassed for the domain *.pythonhosted.org (or more specifically, files.pythonhosted.org). May also need to include pypi.org.
I'm running Python on an enterprise workstation and this has been the culprit in our environment across Windows and Linux hosts. Confirmed with our older system, a Broadcom ProxySG on prem web filter appliance, and later through Cisco's Umbrella Cloud Gateway/SIG product.
Cheers
I didn't realize that there is a command "python -M ensurepip after 7.9. This fixed my issue.

Categories

Resources