Geopy Nominatim SSLCertVerificationError - python

I am trying to use Nominatim to do geocoding but get an SSL Error of:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)
The error happens after I run this chunk of code in jupyter notebook:
nom.geocode("3995 23rd St, San Francisco, CA 94114")
I have had SSL errors before, but they only appeared when I ran a pip install without having a trusted host.
My OS is windows and I am running my code in Jupyter notebook from anaconda. I am on Python 3.9.13.
I'm imagining that this error has to be coming from the fact that I am using anaconda.
Below are all my chunks of code from my Jupyer Notebook:
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org geopy
from geopy.geocoders import Nominatim
nom=Nominatim(user_agent="test")
nom.geocode("3995 23rd St, San Francisco, CA 94114")
I am getting the error from the last chuck.
I'm sorry if this question is obvious but I haven't been able to find the solution yet.

Related

Pip install from archive

I am trying to install Dtale in jupyter notebook. Due to the firewall restrictions, I cannot install it online. I tried to download the archive file dtale-2.2.0.tar.gz and ran this command inside the jupyter notes.
pip install <path>/dtale-2.2.0.tar.gz
This fails as it could not find pypandoc. Then I downloaded the pypandoc-1.7.5.tar.gz and ran
pip install <path>/pypandoc-1.7.5.tar.gz.
But this time I get the error:
ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/d2/04/08841501db81bceb7a86a98dea7c12b0185fcc69bfdf1aea266f727d1d7e/poetry_core-1.0.8-py2.py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)')))
I know the host is unreachable due to the firewall, that is the reason why I downloaded the package. Can someone guide me through how to install the packages from the .gz archive file?
Thanks
this error tells you that there is a pkg in dependencies that can NOT be downloaded.
its name is poetry-core, so you should download and install it manually.
here is a url for it: https://files.pythonhosted.org/packages/d2/04/08841501db81bceb7a86a98dea7c12b0185fcc69bfdf1aea266f727d1d7e/poetry_core-1.0.8-py2.py3-none-any.whl
in case you can't download it too due to your firewall, you can use VPN.
in case you can't do that either, then you can download it from this url:
https://www.mediafire.com/file/kpnfupmf5px84um/poetry_core-1.0.8-py2.py3-none-any.whl/file
I have downloaded and re-uploaded it

Problems to install pyautogui

I am having problems to install pyautogui. I have installed Python, Pip and Anaconda in my notebook, but when I try to install pyautogui using the code within cmd: pip install pyautogui I have the return bellow:
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /simple/pyautogui/
Could not fetch URL https://pypi.org/simple/pyautogui/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pyautogui/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))) - skipping
ERROR: Could not find a version that satisfies the requirement pyautogui (from versions: none)
ERROR: No matching distribution found for pyautogui
Someone could help me, please?
It really depends on your setup, but here are a few things that might help:
Generally, when you're installing a package, you go to the command prompt and type something like python -m pip install pyautogui; python is written here to tell the command prompt you're using the python language, -m tells it to look for a module (in this case pip) rather than some script file name, and pip install pyautogui means you're trying to install a module called pyautogui
Pip looks in a few specific places for modules. If it doesn't find them there, it lets you know they were not found. If the module you're trying to install can't be found, generally you'll want to hunt down an actual file for it and install it with that file. However, I know it can find pyautogui, because I just installed it yesterday!
If you're using a Jupyter Notebook within Anaconda, which it sounds like you are, you may not actually want to use your computer's command prompt. Your computer may be finding a different version of Python than your Anaconda installation. So, if you want to be able to use pyautogui in Anaconda, you'll want to follow these steps:
Open Anaconda Navigator
Launch the CMD.exe prompt in the Navigator, which is set up to deal with the Anaconda installation
Type pip install pyautogui in this window and hit enter
I'm not sure about this, but i had the same problem while creating a discord bot with discord.py , what i ended doing was downloading an SSL certificate from a website( search on google there are a bunch of them) then opening the download and it automatically sets it up. And that fixed the problem for me.
Try this command
pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org pyautogui

Brew Python3.7 install on Mac High OSierra 10.13.6. Help understand openssl install instructions

I am having problems installing python and keep getting openssl errors. So I have reinstalled numerous times and still struggling. I think I am not following the below instructions properly and hope someone can explain what I should do. I have read everything on openssl errors online over the last 3 weeks and am practically at the end of my wits. I will very likely give up learning to program if I can't figure this out.
I am able to install packages using pip3. But get errors if I need to access web pages. Examples of errors I get:
pip3 installed geopy but running below raises a huge error the final part of which I have included below:
import geopy
geocoder=geopy.geocoders.GoogleV3(domain="maps.google.co.uk")
geocoder.geocode('Cambridge', exactly_one=False)
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1045)'
I can install pandas and pandas_datareader but running below raises error the final part of which follows the code:
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
style.use('ggplot')
start = dt.datetime(2000,1,1)
end = dt.datetime(2016,12,31)
df = web.DataReader('TSLA', 'yahoo', start, end)
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 511, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='finance.yahoo.com', port=443): Max retries exceeded with url: /quote/TSLA/history?period1=946699200&period2=1483243199&interval=1d&frequency=1d&filter=history (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1045)')))
So I need to know exactly what steps to take after installing python 3.7 via brew as stated below.
Do I need to add additional certificates and as a result place a .pem file in certs directory? When and why is such an action necessary?
Do I only need to run c_rehash if the answer to question 1 is true?
Do I need to have openssl first in my path?
Do I need compilers to find openssl? Under what circumstances should I set the LDFLAGS and CPPFLAGS as stated?
Do I need pkg-config to find openssl?
Basically, I am a beginner python user and not sure how many of these things are necessary for me if I just want to install packages using pip3 and be able to securely access data and websites online.
$ brew install openssl
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2p.high_sierra.
Already downloaded: /Users/user/Library/Caches/Homebrew/downloads/f3b0a441f330cc1e6072080557f91b61256c8b0734e8348563d0efcb2af248ce--openssl-1.0.2p.high_sierra.bottle.tar.gz
==> Pouring openssl-1.0.2p.high_sierra.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
If you need to have openssl first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
For compilers to find openssl you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
For pkg-config to find openssl you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/openssl/1.0.2p: 1,793 files, 12.3MB

SSL Certificate Failure

Running Spyder under the Anaconda package 3.8 with python 3.6. Ever since April I have been receiving an error trying to install packages using pip with the error:
Could not fetch URL https://pypi.python.org/simple/scrapy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443)
Does anyone have any way I can rectify this issue. This doesn't happen at my home PC. Thanks

pip3.4 issue with SSL certificate but NOT pip

I am trying to install libraries for python3.4 using pip in my MacOs X. There is also the python2.7 native version that the system brings. So, this works fine
> pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Cleaning up...
But when I try to install for python3.4
pip3.4 install numpy
I get
Downloading/unpacking numpy
Could not fetch URL https://pypi.python.org/simple/numpy/: There was a
problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed (_ssl.c:598)
Will skip URL https://pypi.python.org/simple/numpy/ when looking for
download links for numpy
Could not fetch URL https://pypi.python.org/simple/: There was a
problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed (_ssl.c:598)
Will skip URL https://pypi.python.org/simple/ when looking for download
links for numpy
Cannot fetch index base URL https://pypi.python.org/simple/
Could not fetch URL https://pypi.python.org/simple/numpy/: There was a
problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed (_ssl.c:598)
Will skip URL https://pypi.python.org/simple/numpy/ when looking for
download links for numpy
Could not find any downloads that satisfy the requirement numpy
Cleaning up...
No distributions at all found for numpy
I have read that there are problems with the pip version 1.5. In particular
> pip --version
pip 1.2.1 from /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg (python 2.7)
while
> pip3.4 --version
pip 1.5 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pip-1.5-py3.4.egg (python 3.4)
Is this my issue? How do I solve it?
If the certificate is not valid, ideally you should import into your system and mark it trusted (if you really trust it) and specify by:
pip --cert file.pem install numpy
Or use --trusted-host parameter, e.g.:
pip --trusted-host https://pypi.python.org/simple/numpy/ install numpy
to mark this host as trusted, even though it does not have valid certificate.
See also: SSL Cert Verification.

Categories