Résumé de la construction de Python 3.4. * De la source à la création d'un environnement informatique scientifique

Quand j'ai essayé de faire quelque chose avec Anaconda (https://store.continuum.io/cshop/anaconda/), je me suis mis en colère contre munmap_chunk (): invalid pointer lors de la lecture d'une grande table avec des pandas, alors j'ai abandonné. J'ai construit le système Python 3.4 à partir de la source et construit l'environnement pour le calcul scientifique, donc le résumé.

Environnement préparé

Construire Python

Avant de construire le Python lui-même, installez les bibliothèques nécessaires. Même si ceux-ci ne sont pas inclus, l'installation de Python elle-même passera en toute sécurité, mais plus tard, je souffrirai d'une erreur non trouvée dans la bibliothèque et je devrai réinstaller Python, donc je vais le mettre en premier de toute façon. (Autodiscipline)

$ sudo yum groupinstall --skip-broken "Development tools"
$ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Construisez le Python lui-même. (Cette fois, nous présenterons la dernière version actuelle 3.4.2) Cette fois, installez-le sous / usr / local. Vérifiez la version sur le site suivant. https://www.python.org/downloads/source/

$ wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
$ tar xzvf Python-3.4.2.tgz
$ cd Python-3.4.2
$ ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
$ make
$ sudo make install

L'installation est terminée si les commandes suivantes peuvent être exécutées.

$ which python3
/usr/local/bin/python3

Si la construction de Python réussit, pip doit être installé automatiquement, vérifiez-le avec la commande suivante.

$ which pip3
/usr/local/bin/pip3

Installation de divers packages

Installation de packages pour les calculs scientifiques

Installez à l'avance les packages requis pour installer Scipy.

sudo yum install blas-devel lapack-devel

À l'exception des packages spécifiques, il peut être introduit en douceur avec pip3.

$ sudo /usr/local/bin/pip3 install nose pytest numpy scipy scikit-learn pandas

Installez matplotlib

Installez à l'avance les packages requis pour installer matplotlib.

$ sudo yum install libpng-devel

Lorsque j'essaye d'installer matplotlib avec pip3, la construction échoue avec le message suivant.

============================================================================

                        * The following required packages can not be built:

                        * freetype

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib
Storing debug log for failure in /root/.pip/pip.log

Si vous regardez attentivement le message d'erreur, vous trouverez le message suivant.

REQUIRED DEPENDENCIES AND EXTENSIONS
...
              freetype: no  [Requires freetype2 2.4 or later.  Found

                        2.3.11.]

Pour installer matplotlib, freetype2 2.4 ou supérieur est requis, mais il semble que 2.3.11 soit inclus par défaut. Ici, nous avons décidé de construire freetype à partir de la source. La source peut être téléchargée à partir du site suivant. http://download.savannah.gnu.org/releases/freetype/

$ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
$ tar xzvf freetype-2.5.3.tar.gz
$ cd freetype-2.5.3
$ ./configure
$ make
$ sudo make install

Lorsque j'ai essayé à nouveau pip3 après avoir terminé jusqu'à ce point, l'erreur suivante s'est produite cette fois.

Downloading/unpacking matplotlib
  Downloading matplotlib-1.4.0.tar.gz (51.2MB): 51.2MB downloaded
  Running setup.py (path:/tmp/pip_build_root/matplotlib/setup.py) egg_info for package matplotlib
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip_build_root/matplotlib/setup.py", line 154, in <module>
        result = package.check()
      File "/tmp/pip_build_root/matplotlib/setupext.py", line 945, in check
        min_version='2.4', version=version)
      File "/tmp/pip_build_root/matplotlib/setupext.py", line 433, in _check_for_pkg_config
        if (not is_min_version(version, min_version)):
      File "/tmp/pip_build_root/matplotlib/setupext.py", line 166, in is_min_version
        return found_version >= expected_version
      File "/usr/local/lib/python3.4/distutils/version.py", line 76, in __ge__
        c = self._cmp(other)
      File "/usr/local/lib/python3.4/distutils/version.py", line 343, in _cmp
        if self.version < other.version:
    TypeError: unorderable types: str() < int()

Après avoir étudié cette erreur, il s'est avéré qu'il s'agissait d'un bogue connu dans la série Python 3.3 / 3.4. Voir le problème ci-dessous pour plus de détails. http://bugs.python.org/issue14894

Téléchargez le 14894.patch répertorié ici et appliquez-le à Python. (Quand ce changement sera-t-il appliqué à Python lui-même et publié ...)

$ wget http://bugs.python.org/file25808/14894.patch
$ cd /usr/local/lib/python3.4/distutils/
$ sudo patch -p3 < /path/to/patch/14894.patch 

En exécutant pip3 à la fin jusqu'à présent, matplotlib peut être installé.

$ sudo /usr/local/bin/pip3 install matplotlib

Installez le package pour exécuter IPython Notebook

Introduit les packages suivants.

$ sudo /usr/local/bin/pip3 install ipython jinja2 tornado pyzmq

fin

Après cela, j'ai lancé IPython Notebook Server et mis pytest / Theano / wabbit_wappa, mais c'est devenu difficile à assembler, donc ça se termine ici. Pour IPython Notebook Server, les sites suivants sont bien organisés pour votre référence. http://akiniwa.hatenablog.jp/entry/2013/11/25/001805

Enjoy PyData!

Recommended Posts

Résumé de la construction de Python 3.4. * De la source à la création d'un environnement informatique scientifique
De la création d'un environnement Python pour les personnes inexpérimentées à Hello world
De l'installation d'Ansible à la création d'un environnement Python dans l'environnement virtuel de Vagrant
Tout, de la création d'un environnement Python à son exécution sous Windows
Construire un environnement virtuel Python
Construire un environnement virtuel Python
Construire un environnement Python sur Mac
Construire un environnement Python sur Ubuntu
Créer un environnement virtuel avec Python 3
[Python] Création d'un environnement Python virtuel pour le didacticiel sur la pyramide (résumé)
[Pyenv] Construire un environnement python avec ubuntu 16.04
Création d'un environnement Python 3.6 avec Windows + PowerShell
Je veux créer un environnement Python
[Mac] Création d'un environnement virtuel pour Python
Créer un environnement de développement Python pour le développement de l'IA
Ajouter un environnement virtuel Python à VSCode
Création d'un environnement de développement Python sur Windows - De l'installation d'Anaconda à la liaison d'Atom et de Jupyter Notebook -
Création d'un environnement virtuel pour Mayavi dédié aux utilisateurs de Python 3.6, Anaconda et Spyder
Migration de Python2 vers Python3 (Python2 est reconstruit comme un environnement virtuel et coexiste)
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment ouvrir un navigateur Web à partir de python
Construire un environnement python avec virtualenv et direnv
Comment générer un objet Python à partir de JSON
[Python] Préparation au développement Web (création d'un environnement virtuel)
Pensez à créer un environnement Python 3 dans un environnement Mac
Introduction à Python "Re" 1 Construction d'un environnement d'exécution
Construire un environnement Python sur le serveur Sakura VPS
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Notes de l'installation de Homebrew à la création d'un environnement Anaconda pour Python avec pyenv
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Installer Python à partir de la source
Créer un environnement Python
De la configuration du Raspberry Pi à l'installation de l'environnement Python
Construire un environnement Python avec pyenv, pyenv-virtualenv, Anaconda (Miniconda)
Écrire sur la création d'un environnement Python pour l'écriture de Qiita Qiita
Comment configurer un environnement Python à l'aide de pyenv
Recommandation de construction d'un environnement Python portable avec conda
Création d'un environnement de travail Docker R et Python
Comment créer un environnement Django (python) sur Docker
Étapes de l'installation de Python 3 à la création d'une application Django
De l'achat d'un ordinateur à l'exécution d'un programme sur python
Procédure de création d'un environnement CDK sous Windows (Python)
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
Envisagez la conversion de Python récursif en non récursif
Procédure pour convertir un fichier python en exe à partir de la construction de l'environnement Ubunts
Remarque conda: Création d'un environnement Python avec Spacon ITO
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Construction d'environnement Python pour les débutants en programmation (Mac OS)
Mémo de construction d'environnement d'apprentissage automatique par Python
Comment créer un environnement Python sur Amazon Linux 2
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
[Il n'est pas trop tard pour apprendre Python à partir de 2020] Partie 2 Créons un environnement de développement Python
Publier de Python vers Slack
Exécutez le programme sans créer d'environnement Python! !! (Comment démarrer avec Google Colaboratory)