-
-
Save marschhuynh/31c9375fc34a3e20c2d3b9eb8131d8f3 to your computer and use it in GitHub Desktop.
# install_certifi.py | |
# | |
# sample script to install or update a set of default Root Certificates | |
# for the ssl module. Uses the certificates provided by the certifi package: | |
# https://pypi.python.org/pypi/certifi | |
import os | |
import os.path | |
import ssl | |
import stat | |
import subprocess | |
import sys | |
STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | |
| stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | |
| stat.S_IROTH | stat.S_IXOTH ) | |
def main(): | |
openssl_dir, openssl_cafile = os.path.split( | |
ssl.get_default_verify_paths().openssl_cafile) | |
print(" -- pip install --upgrade certifi") | |
subprocess.check_call([sys.executable, | |
"-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"]) | |
import certifi | |
# change working directory to the default SSL directory | |
os.chdir(openssl_dir) | |
relpath_to_certifi_cafile = os.path.relpath(certifi.where()) | |
print(" -- removing any existing file or link") | |
try: | |
os.remove(openssl_cafile) | |
except FileNotFoundError: | |
pass | |
print(" -- creating symlink to certifi certificate bundle") | |
os.symlink(relpath_to_certifi_cafile, openssl_cafile) | |
print(" -- setting permissions") | |
os.chmod(openssl_cafile, STAT_0o775) | |
print(" -- update complete") | |
if __name__ == '__main__': | |
main() |
After 2 days of searching...this solved my issues, thank you!
thanks it worked :)
its nice but I have a error and i dont no how fix it:
-- pip install --upgrade certifi
Traceback (most recent call last):
File "C:/Users/flori/Downloads/ok.py", line 44, in
main()
File "C:/Users/flori/Downloads/ok.py", line 24, in main
subprocess.check_call([sys.executable,
File "C:\Users\flori\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 373, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\Users\flori\AppData\Local\Programs\Python\Python39\pythonw.exe', '-E', '-s', '-m', 'pip', 'install', '--upgrade', 'certifi']' returned non-zero exit status 2.
this worked for me!
Thanks)
thanks a lot worked for me....
Thanks
thank you very very much. it works for me.
wickedly neat!
Thanks!! A lot, worked perfectly for me!
Thanks!! Works for me!!
Thank you!!
File "D:\PTest\ssl_certificate.py", line 29, in main
os.chdir(openssl_dir)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\Program Files\Common Files\SSL'
such folder is not there in my windows 11
Update:
Fixed it by creating a folder named SSL in C:\Program Files\Common Files\
I got the following errror:
Could not fetch URL https://pypi.org/simple/certifi/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/certifi/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)'))) - skipping
ERROR: Could not find a version that satisfies the requirement certifi (from versions: none)
ERROR: No matching distribution found for certifi
I'm in Windows 10. How to resolve this error? Thanks.
Thanks, it solves my problem!
Thanks! You'r the best!
Yes!! It runs! Thanks for that life saver!
perfect!! thanks
I use Win11, and first it didn't find the directory, so I created the folder 'C:\Program Files\Common Files\SSL' manually.
Then, I'm having this error - ideas?
Traceback (most recent call last):
File "C:...\certif.py", line 44, in
main()
File "C:...\certif.py", line 38, in main
os.symlink(relpath_to_certifi_cafile, openssl_cafile)
PermissionError: [WinError 5] Access is denied: '..\..\..\...\venv\lib\site-packages\certifi\cacert.pem' -> 'cert.pem'
Edit: I was too quick to post. It failed when running from PyCharm but then worked when running it via Powershell as admin
thank you
Thank you .. helped a lot
Thanks a lot !!
Ty
Just change this part to not get FileNotFound Error :
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\Program Files\Common Files\ssl'
try:
os.chdir(openssl_dir)
except FileNotFoundError:
os.makedirs(openssl_dir)
os.chdir(openssl_dir)
Full Code :
# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module. Uses the certificates provided by the certifi package:
# https://pypi.python.org/pypi/certifi
import os
import os.path
import ssl
import stat
import subprocess
import sys
STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
| stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
| stat.S_IROTH | stat.S_IXOTH )
def main():
openssl_dir, openssl_cafile = os.path.split(
ssl.get_default_verify_paths().openssl_cafile)
print(" -- pip install --upgrade certifi")
subprocess.check_call([sys.executable,
"-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])
import certifi
# change working directory to the default SSL directory
try:
os.chdir(openssl_dir)
except FileNotFoundError:
os.makedirs(openssl_dir)
os.chdir(openssl_dir)
relpath_to_certifi_cafile = os.path.relpath(certifi.where())
print(" -- removing any existing file or link")
try:
os.remove(openssl_cafile)
except FileNotFoundError:
pass
print(" -- creating symlink to certifi certificate bundle")
os.symlink(relpath_to_certifi_cafile, openssl_cafile)
print(" -- setting permissions")
os.chmod(openssl_cafile, STAT_0o775)
print(" -- update complete")
if __name__ == '__main__':
main()
Thank you!
I have been trying to run this but I get this error:
/Applications/Python\ 3.12/Install\ Certificates.command ; exit;
sbrunswi@ppi-gq4jmwx5 ~ % /Applications/Python\ 3.12/Install\ Certificates.command ; exit;
-- pip install --upgrade certifi
Requirement already satisfied: certifi in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (2024.2.2)
[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: pip3 install --upgrade pip
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
Traceback (most recent call last):
File "<stdin>", line 44, in <module>
File "<stdin>", line 38, in main
PermissionError: [Errno 13] Permission denied: '../../lib/python3.12/site-packages/certifi/cacert.pem' -> 'cert.pem'
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Can anybody help?
@sbrunswi try to run this script with sudo
If that doesn't help, try to use chmod -R 777 {path to your site-packages folder}/certifi
I'm not sure, but I hope it helps
Still getting error, @arkahome , could you please help to fix the issue,
-- pip install --upgrade certifi9-5094-4f12-93b1-ace18c7ce134
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "c:\Python_FinV30\venv\Lib\site-packages\pip_main.py", line 24, in
sys.exit(main())
^^^^^^^
File "c:\Python_FinV30\venv\Lib\site-packages\pip_internal\cli\main.py", line 78, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Python_FinV30\venv\Lib\site-packages\pip_internal\commands_init.py", line 114, in create_command
module = importlib.import_module(module_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python312\Lib\importlib_init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "c:\Python_FinV30\venv\Lib\site-packages\pip_internal\commands\install.py", line 16, in
from pip._internal.cli.req_command import (
File "c:\Python_FinV30\venv\Lib\site-packages\pip_internal\cli\req_command.py", line 18, in
from pip._internal.index.collector import LinkCollector
File "c:\Python_FinV30\venv\Lib\site-packages\pip_internal\index\collector.py", line 31, in
from pip.vendor import requests
File "c:\Python_FinV30\venv\Lib\site-packages\pip_vendor\requests_init.py", line 146, in
from . import packages, utils
File "c:\Python_FinV30\venv\Lib\site-packages\pip_vendor\requests\utils.py", line 24, in
from . import certs
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "c:\Python_FinV30\venv\Lib\site-packages\wrapt\importer.py", line 185, in _self_exec_module
notify_module_loaded(module)
File "c:\Python_FinV30\venv\Lib\site-packages\wrapt\importer.py", line 118, in notify_module_loaded
hook(module)
File "c:\Python_FinV30\venv\Lib\site-packages\certifi_win32\wrapt_pip.py", line 35, in apply_patches
import certifi
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "c:\Python_FinV30\venv\Lib\site-packages\wrapt\importer.py", line 185, in _self_exec_module
notify_module_loaded(module)
File "c:\Python_FinV30\venv\Lib\site-packages\wrapt\importer.py", line 118, in notify_module_loaded
hook(module)
File "c:\Python_FinV30\venv\Lib\site-packages\certifi_win32\wrapt_certifi.py", line 26, in apply_patches
if not verify_combined_pem():
^^^^^^^^^^^^^^^^^^^^^
File "c:\Python_FinV30\venv\Lib\site-packages\certifi_win32\wincerts.py", line 65, in verify_combined_pem
with open(certifi_pem()) as certifi_pem_handle:
^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'c:\Python_FinV30\venv\Lib\site-packages\certifi\cacert.pem'Traceback (most recent call last):
File "c:\Python_FinV30\install_certifi.py", line 44, in
main()
File "c:\Python_FinV30\install_certifi.py", line 24, in main
subprocess.check_call([sys.executable,
File "C:\Users\admin\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['c:\Python_FinV30\venv\Scripts\python.exe', '-E', '-s', '-m', 'pip', 'install', '--upgrade', 'certifi']' returned non-zero exit status 1.
Great, it solves the problem directly!
great! but apparently my certificate are in anaconda3 and I have the following error: