CentOS 7 installiert Python 3.6, pip3 meldet einen Fehler

Nach der Installation von Python3.6.3 unter CentOS 7 wird bei Verwendung des Befehls pip der folgende Fehler gemeldet

Traceback (most recent call last):
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/commands/search.py", line 45, in run
    pypi_hits = self.search(query, options)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/commands/search.py", line 62, in search
    hits = pypi.search({'name': query, 'summary': query}, 'or')
  File "/usr/Python3.6.3/lib/python3.6/xmlrpc/client.py", line 1112, in __call__
    return self.__send(self.__name, args)
  File "/usr/Python3.6.3/lib/python3.6/xmlrpc/client.py", line 1452, in __request
    verbose=self.__verbose
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/download.py", line 775, in request
    headers=headers, stream=True)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 522, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/_vendor/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/Python3.6.3/lib/python3.6/site-packages/pip/_vendor/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
pip._vendor.requests.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available.


Dies liegt daran, dass SSL nicht richtig konfiguriert ist. Nach vielen Experimenten werde ich die richtigen Installationsschritte zusammenfassen.

Installationsschritte:

1. Laden Sie Python 3.6.3 herunter

https://www.python.org/downloads/source/

2. Entpacken

Die .xz-Datei muss mit dem xz-Tool dekomprimiert werden. Installieren Sie zuerst xz

sudo yum install xz

xz d Python-3.6.3.tar.xz


tar xvf Python-3.6.3.tar

3. Laden Sie OpenSSL und OpenSSL-Devel herunter bzw. installieren Sie sie. Wenn kein Wget vorhanden ist, kann es über yum install wget installiert werden

wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
Bei der Minimalinstallation von CentOS 7 wird openSL standardmäßig installiert, aber ich habe den lib-Pfad für die Installation nicht gefunden, also habe ich ihn deinstalliert und selbst installiert, da der Pfad bei der Installation von Python3.6 verwendet werden muss. Befehl zum Deinstallieren von OpenSSL:

sudo yum erase openssl

OpenSSL installieren:

tar zxvf openssl-1.1.0g.tar.gz

cd openssl-1.1.0g

./config --prefix=/usr/local/openssl

machen

make installieren

Unter anderem ist der Pfad nach --prefix das zu installierende Verzeichnis. Denken Sie daran, ihn unten zu verwenden.

Laden Sie openssl-devel herunter und installieren Sie es

sudo yum install openssl-devel

4. Fügen Sie den Lesepfad der Bibliothek hinzu

sudo vi /etc/ld.so.conf

Fügen Sie am Ende eine Zeile hinzu

/usr/local/openssl/lib
Dieser Pfad ist der Pfad, in dem openSL gerade installiert wurde. Führen Sie dann den folgenden Befehl aus, um ihn wirksam zu machen

sudo ldconfig

5. Ändern Sie die Datei Modules/Setup.dist im Python-Installationspaket und öffnen Sie den auskommentierten Teil von SSL. Der geänderte Inhalt lautet wie folgt:

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/openssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

Der Pfad hinter SSL= ist der Pfad, in dem Sie openssl tatsächlich installiert haben


6. Konfigurieren und installieren

./configure --prefix=/usr/Python3.6.3
make
make install

Wenn während des Installationsvorgangs der Fehler gemeldet wird, dass libssl.so.1.1 nicht gefunden werden kann, überprüfen Sie bitte die Konfiguration in den Schritten 3 und 4.

Guess you like

Origin blog.csdn.net/leon_founder/article/details/78721879