#1 Le 13/09/2021, à 07:59
- nils.barrellon
Probleme installation module python avec Pip (certificat non valide ?)
Bonjour,
J'enseigne l'informatique au lycée, la nouvelle spécialité NSI et cette année, j'ai réussi à obtenir une classe entièrement dévolue à cet enseignement : j'ai donc mis Ubuntu sur tous les postes élève !
(le programme précise qu'il est recommandé de faire travailler les élèves sous Linux
)
Tout tourne mais... je vais avoir besoin de bibliothèques supplémentaires au cours de l'année (networks, pandas,matplotlib...) et je rencontre une difficulté inédite pour les installer avec pip :
- un certificat non reconnu
C'est la première fois que je rencontre ce souci. D'ordinaire, je fais pip install networkx et tout roule. Mais là, impossible !
Voici ce que j'obtiens :
nilsbarrellon@LyceeMontaigneJ14-25:~$ pip install networkx
WARNING: Retrying (Retry(total=4, 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:1129)'))': /simple/networkx/
WARNING: Retrying (Retry(total=3, 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:1129)'))': /simple/networkx/
WARNING: Retrying (Retry(total=2, 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:1129)'))': /simple/networkx/
WARNING: Retrying (Retry(total=1, 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:1129)'))': /simple/networkx/
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:1129)'))': /simple/networkx/
Could not fetch URL https://pypi.org/simple/networkx/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/networkx/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)'))) - skipping
ERROR: Could not find a version that satisfies the requirement networkx
ERROR: No matching distribution found for networkxQuelqu'un a-t-il une idée pour me sortir de là ?
Et, deuxième question subsidiaire : peut-on installer ces bibliothèques autrement qu'en ligne de commande ?
Merci d'avance pour votre aide.
Remarque 1 : les postes sont équipés d'Ubuntu 20
Remarque 2 : nous passons par un proxy pour nous connecter à Internet
Hors ligne
#2 Le 13/09/2021, à 11:44
- Vobul

Re : Probleme installation module python avec Pip (certificat non valide ?)
Bonjour Nils,
Je viens d'essayer, sans soucis. Peut-être un problème passager type certificat expiré (ça me semble peu probable mais bon).
> peut-on installer ces bibliothèques autrement qu'en ligne de commande ?
Pour quoi faire ?
> Remarque 2 : nous passons par un proxy pour nous connecter à Internet
Dans ce cas, sois sûr d'avoir les variables d'environnement http_proxy et https_proxy configurées. (https://leifengblog.net/blog/how-to-use … d-a-proxy/)
Aussi, petit conseil, si t'as plusieurs postes à configurer, je t'invite fortement à regarder ce que c'est que Ansible. Ça te permettra assez simplement d'installer/configurer tous les postes d'un coup depuis ton ordi.
En tout cas c'est super d'utiliser du GNU/Linux dans ta classe ! ![]()
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
Hors ligne
#3 Le 13/09/2021, à 12:43
- nils.barrellon
Re : Probleme installation module python avec Pip (certificat non valide ?)
Pour quoi faire ?
Pour les utiliser pardi ! On se rapproche dangereusement de la date à laquelle mes élèves vont avoir besoin de ces bibliothèques et je n'arrive pas à les installer ![]()
Pour le proxy, effectivement, si je le configure, je n'ai pas la même erreur, il ne me parle pas de certificat :
nilsbarrellon@LyceeMontaigneJ14-25:~$ sudo pip install --proxy=https://10.175.48.254:3128 folium
ERROR: Exception:
Traceback (most recent call last):
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 171, in _merge_into_criterion
crit = self.state.criteria[name]
KeyError: 'folium'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 223, in _main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
return func(self, options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 346, in run
requirement_set = resolver.resolve(
File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 122, in resolve
self._result = resolver.resolve(
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 453, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 318, in resolve
name, crit = self._merge_into_criterion(r, parent=None)
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 173, in _merge_into_criterion
crit = Criterion.from_requirement(self._p, requirement, parent)
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 82, in from_requirement
if not cands:
File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/structs.py", line 124, in __bool__
return bool(self._sequence)
File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 99, in __bool__
return any(self)
File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 220, in iter_index_candidates
result = self._finder.find_best_candidate(
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 882, in find_best_candidate
candidates = self.find_all_candidates(project_name)
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 825, in find_all_candidates
package_links = self.process_project_url(
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 789, in process_project_url
html_page = self._link_collector.fetch_page(project_url)
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 618, in fetch_page
return _get_html_page(location, session=self.session)
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 430, in _get_html_page
resp = _get_html_response(url, session=session)
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 127, in _get_html_response
resp = session.get(
File "/usr/share/python-wheels/requests-2.25.1-py2.py3-none-any.whl/requests/sessions.py", line 555, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 428, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/share/python-wheels/requests-2.25.1-py2.py3-none-any.whl/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/usr/share/python-wheels/requests-2.25.1-py2.py3-none-any.whl/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/usr/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl/cachecontrol/adapter.py", line 53, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.25.1-py2.py3-none-any.whl/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/connectionpool.py", line 696, in urlopen
self._prepare_proxy(conn)
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/connectionpool.py", line 966, in _prepare_proxy
conn.connect()
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/connection.py", line 359, in connect
conn = self._connect_tls_proxy(hostname, conn)
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/connection.py", line 500, in _connect_tls_proxy
return ssl_wrap_socket(
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 432, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "/usr/share/python-wheels/urllib3-1.26.2-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 474, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "/usr/lib/python3.9/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.9/ssl.py", line 997, in _create
raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostnameMais ça ne marche toujours pas.
Rq 1 : Ansible me rendrait il est vrai de fiers services tant j'en ai marre de passer d'un poste à l'autre pour installer un truc
Rq 2 : je suis un peu moins stressé, j'ai réussi à installer matplotlib, pandas et networkx avec apt mais cela n'empêche, pip est quand même incontournable.
Hors ligne
#4 Le 13/09/2021, à 16:33
- Vobul

Re : Probleme installation module python avec Pip (certificat non valide ?)
Pour quoi faire ?
Pour les utiliser pardi !
Nan mais je demandais pourquoi vouloir utiliser un GUI. Mais bon je suis un hardcore CLI guy aussi....
Pour ton problème, t'as vu ça :
https://stackoverflow.com/questions/666 … r-hostname
Et aussi, c'est vraiment pas une super idée de sudo pip install. Sois tu fais --user, sois tu utilises pipenv ou poetry. Voir : https://dev.to/elabftw/stop-using-sudo-pip-install-52mn
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
Hors ligne
#5 Le 17/09/2021, à 12:30
- nils.barrellon
Re : Probleme installation module python avec Pip (certificat non valide ?)
Salut,
un de mes élèves a trouvé la solution qui pourrait servir à quelqu'un...
Il suffit de faire
nilsbarrellon@LyceeMontaigneJ14-25:~$ pip install --proxy=https://xxx.xxx.xxx.xxx:yyyy packageavec yyyy le port ![]()
Hors ligne
#6 Le 20/09/2021, à 15:07
- Lolorase
Re : Probleme installation module python avec Pip (certificat non valide ?)
Salut,
Sans le sudo donc, si je comprends bien ?
Tu avais essayé :
sudo pip install --proxy=https://10.175.48.254:3128 folium
ça me paraît louche cette histoire... ![]()
En revanche, il me semple que la commande c'est plutôt :
sudo python -m pip install --proxy=https://10.175.48.254:3128 foliumà vérifier... (je ne suis pas devant un linux... et j'en pleure)
Dernière modification par Lolorase (Le 20/09/2021, à 15:12)
Hors ligne
#7 Le 20/09/2021, à 15:36
- Vobul

Re : Probleme installation module python avec Pip (certificat non valide ?)
nan mais arrêtez avec vos sudo là ! C'est une très mauvaise idée d'installer des paquets python en root ! Voir deuxième lien du #4.
Et "python -m" ou "pip" ça ne doit pas changer grand chose à mon humble avis.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
Hors ligne