[Mémo de procédure] Installez Python3 + OpenSSL localement sur Ubuntu

Étapes pour installer Python 3 localement tout en résolvant les erreurs OpenSSL sans privilèges d'administrateur.

Table des matières

Motivation
  • Étant donné que l'environnement du serveur avec GPGPU dans le laboratoire à utiliser la prochaine fois est ancien, le système d'exploitation est ancien, python est ancien et OpenSSL est également ancien, une erreur liée à OpenSSL s'est produite lors de l'utilisation du pip installé globalement ou lors de l'installation de python.
  • Il est plus facile de déplacer l'environnement si les fichiers sont organisés localement autant que possible.
  • Il existe également une option appelée Docker (nvidia-docker), mais il semble que les travaux de construction de l'environnement vont encore augmenter + Surtout, c'est ennuyeux car une erreur s'est produite lors de la création d'image sur ce serveur en premier lieu.

Environnement / Conditions
  • N'effectuez pas de travaux nécessitant des privilèges d'administrateur.
  • Le répertoire personnel est / home / user (appelons-le).
  • La destination d'installation est / home / user / local et l'emplacement source est / home / user / src.
  • Cible d'installation: Python3.7.9 (3.8.6 était bien.)
  • OS: Ubuntu14.04.6 LTS (ancien)
$ cat /etc/issue
Ubuntu 14.04.6 LTS \n \l

Procédure

1. Téléchargez les fichiers requis
$ cd /home/user/src
$ wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
$ wget https://prdownloads.sourceforge.net/tcl/tcl8.6.10-src.tar.gz
$ wget https://prdownloads.sourceforge.net/tcl/tk8.6.10-src.tar.gz
$ wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz

2. Installez OpenSSL

Alias associés

/home/user/.bash_profile


alias targz="tar xzvf"
alias tarxz="tar xvf"
Créer une destination d'installation
$ mkdir /home/user/local/ssl
$ mkdir /home/user/local/ssl/1_1_1h
Installation
$ cd /home/user/src
$ targz openssl-1.1.1h.tar.gz
$ cd openssl-1.1.1h
$ ./config --prefix=/home/user/local/ssl/1_1_1h --openssldir=/home/user/local/ssl shared
$ make
$ make install

Confirmation

/home/user/.bash_profile


Ajouter OpenSSL local à la recherche de l'éditeur de liens
LD_LIBRARY_PATH=/home/user/local/ssl/1_1_1h/lib:$LD_LIBRARY_PATH

alias /home/user/local/ssl/1_1_1h/bin/openssl
$ openssl version
OpenSSL 1.1.1h  22 Sep 2020
Si cela est affiché, cela réussit (au fait, global openssl vaut 1.0.2)

3. Installez tcl, tk ``` $ cd /home/user/src $ targz tcl8.6.10.tar.gz $ targz tk8.6.10.tar.gz $ cd tcl8.6.10 $ mkdir build $ cd build $ ../unix/configure --prefix=/home/user/local/ $ make $ make install $ cd tk8.6.10 $ mkdir build $ cd build $ ../unix/configure --prefix=/home/user/local/ $ make $ make install ```

4. Installez python

Alias (fonctions) associés C'était difficile d'écrire plusieurs fois.

/home/user/.bash_profile


$ function pyconf (){
    ./configure --prefix=/home/user/local/$1 --with-ensurepip --with-openssl=/home/user/local/ssl/1_1_1h \
    --with-tcltk-includes="home/user/local/include" --with-tcltk-libs="/home/user/local/lib -ltcl8.6 -ltk8.6"
}
$ mkdir /home/user/local/python379
$ cd /home/user/src
$ pyconf python379
$ make
$ make install

5. Confirmation finale

/home/user/.bash_profile


alias python37="$HOME/local/python379/bin/python3.7"
alias pip37="$HOME/local/python379/bin/pip3.7"
$ python37
Python 3.7.9 (default, Nov  2 2020, 16:54:48)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
OK si le module ssl peut être importé normalement
>>> exit()
$ pip37 install numpy
Vérifiez également si pip peut être utilisé

c'est tout.

Collecte des erreurs

Erreur OpenSSL lors de l'installation de Python ``` Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host(). LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381 ``` Le contenu du message lui-même est qu'OpenSSL 1.0.2 à 1.1 est requis comme le texte l'indique, mais cela apparaît même s'il semble qu'OpenSSL a été installé comme à l ' Étape 2 ( Si vous voyez des centaines de lignes avant la fin de la sortie lorsque vous effectuez l'installation), vous n'avez pas trouvé votre OpenSSL local, vous pouvez donc avoir une erreur dans --openssldir lors de la configuration, ou "partagé" (ce Il est préférable de vérifier si la présence ou l'absence du problème n'a pas été vérifiée) et si l'OpenSSL local est inclus dans la cible de recherche de l'éditeur de liens.

Erreur SSL lors de l'installation de pip
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
Could not fetch URL https://pypi.org/simple/numpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/numpy/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)
ERROR: No matching distribution found for numpy
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

Eh bien, cela est également dû au fait qu'OpenSSL ne peut pas se lier à Python. Examinez l'installation d'OpenSSL. Cela devrait être correct si la version est affichée correctement avec "openssl version", et d'ailleurs, le module ssl peut être importé avec l'interpréteur python.

Référence / page associée

Un jour, j'installerai également toutes les autres bibliothèques localement. .. ..

Recommended Posts