web-dev-qa-db-fra.com

Comment pourrais-je construire python moi-même à partir du code source sur Ubuntu?

Ubuntu est livré avec Python 2.7.2+ pré-installé. (J'ai également téléchargé les packages de développement python dev.) À cause d'un autre problème que je rencontre (expliqué) en profondeur extrême dans Comment remplacer/mettre à jour la version de la bibliothèque d'expats utilisée par Apache? ), Graham Dumpleton m'a dit que ma distribution avait explicitement construit Python dans un façon d'utiliser une implémentation externe de pyexpat, provoquant ainsi mon problème. Il a également dit que je pouvais construire Python moi-même à partir du code source pour résoudre le problème. Comment pourrais-je le faire sur Ubuntu? (Gardez à l'esprit Je suis nouveau sur Linux.)

37
Brian Schmitz
  1. À une invite Shell (dans un terminal), exécutez

    Sudo apt-get install build-essential 
    

    Cela récupérera tous les packages courants dont vous avez besoin pour construire quoi que ce soit (par exemple le compilateur, etc.).

  2. Exécutez ensuite

    Sudo apt-get build-dep python2.7
    

    Cela récupérera toutes les bibliothèques dont vous avez besoin pour construire python.

  3. Téléchargez ensuite le code source de python et décompressez-le dans un répertoire.

  4. y aller et courir

    ./configure --prefix=/path/where/you/want/python/installed
    
  5. Puis make puis make install pour le faire construire et installer:

    make && make install
    

Si vous rencontrez des problèmes en cours de route, demandez ici et je vais essayer de vous donner quelques conseils.

47
Noufal Ibrahim

La meilleure façon de construire des "hot" très récents python (depuis github) est la suivante:

  Sudo apt-get update \
  && Sudo apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \
  libncurses5-dev libbz2-dev liblzma-dev \
  libsqlite3-dev libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
  libreadline-dev tk tk-dev

  git clone https://github.com/python/cpython.git
  cd cpython && ./configure --prefix=/usr \
  --enable-loadable-sqlite-extensions \
  --enable-shared \
  --with-lto \
  --enable-optimizations \
  --with-system-expat \
  --with-system-ffi \
  --enable-ipv6 --with-threads --with-pydebug --disable-rpath \
  && make \
  && Sudo make install

Il construit le très récent python à partir des sources sur github.

Avec cela, j'ai construit Python 3.8.0a0 (heads/master:077059e0f0, Aug 10 2018, 21:36:32).

35
Suman Khanal

Vous pouvez essayer d'utiliser pyenv . Je ne l'ai pas encore essayé. Mais en regardant les sources, il semble très mature de réaliser une installation de n'importe quel interprète CPython sur n'importe quel système * ix.

6
funky-future

La solution supérieure pour construire Python vous-même est pythonbrew , qui automatise le processus et vous permet non seulement d'installer plusieurs versions différentes, mais aussi de sélectionner facilement entre elles.

En 2016, pyenv et PyRun sont les solutions les plus viables.

3
pyroscope

Vous pouvez utiliser checkinstall pour installer à partir du code source au lieu de make install.

Une fois que vous avez téléchargé le code source, accédez au dossier d'accueil et utilisez les commandes ci-dessous

./configure
make
Sudo checkinstall

Cela crée un paquet debian/RPM puis l'installe. Checkinstall conserve un onglet de toutes les modifications et dépendances des fichiers et facilite l'ensemble du processus de désinstallation. Comme vous avez un package .deb, il est beaucoup plus facile à installer sur de nombreux systèmes et à gérer avec un gestionnaire de packages.

Source: Checkinstall - installation à partir du code source

0
mb47