29
votes

PYENV Configure: Erreur: C Compiler ne peut pas créer des exécutables

J'essaie d'installer plusieurs versions de Python sur mon ordinateur portable exécutant macOS Big sur V11.1. J'ai initialement installé des outils de ligne de commande Xcode, Homebrew et Python via des instructions ici xcode-select - -stall

/ bin / bash -c "$ (curl -fssl https://raw.githubusercontent.com/homebrew/install /master/install.sh) Retour à 3.7.9. J'ai donc installé Pyenv et tenté d'installer Python 3.7.9 par instructions ici / a>

Brew install pyenv

pyenv install 3.7.9

mais j'ai rencontré ce qui suit Erreur:

Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

D'autres réponses en ligne, il semble que mon GCC soit obsolète. J'ai vérifié ma version GCC avec

[/usr/local/Cellar]$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr
    --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 11.0.3 (clang-1103.0.32.62) Target: x86_64-apple-darwin20.2.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin

qui semble indiquer que je suis sur la version 4.2.1. Je n'ai pas encore été en mesure de trouver un moyen de le mettre à jour par moi-même, mais j'ai fait d'installer GCC qui n'a pas résolu le problème. Toute aide serait très appréciée

modifier: Il semble que Pyenv utilise Clang et non GCC. Peut-être que Xcode-Seled a installé les deux? clang --version renvoie:

/var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108 /usr/local/Cellar
/var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108/Python-3.7.9 /var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108 /usr/local/Cellar
checking build system type... x86_64-apple-darwin20.2.0
checking host system type... x86_64-apple-darwin20.2.0
checking for python3.7... no
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... clang
checking whether the C compiler works... no
configure: error: in `/var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108/Python-3.7.9':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.


7 Réponses :



8
votes

semble qu'il y a un problème avec les options Xcode, ZLIB et Compiler. À partir de Brew, ils ont réalisé des correctifs à la version 3.8.0 Python.

ma configuration

# Re-install Xcode
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

# Install zlib and bzip2 using brew
brew reinstall zlib bzip2
 
# Install tcl-tk tkinter
brew install tcl-tk

# Uninstall previous versions from python
pyenv uninstall 3.8.3
pyenv uninstall 3.9.0

# Install python 3.8.3 patched
env \
  PATH="$(brew --prefix tcl-tk)/bin:$PATH" \
  LDFLAGS="-L$(brew --prefix tcl-tk)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" \
  CPPFLAGS="-I$(brew --prefix tcl-tk)/include -L$(brew --prefix zlib)/include -L$(brew --prefix bzip2)/include" \
  PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
  CFLAGS="-I$(brew --prefix tcl-tk)/include -I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix zlib)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" \
  LDFLAGS="-I$(brew --prefix tcl-tk)/lib -L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib"
  pyenv install --patch 3.8.3 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
  
env \
  PATH="$(brew --prefix tcl-tk)/bin:$PATH" \
  LDFLAGS="-L$(brew --prefix tcl-tk)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" \
  CPPFLAGS="-I$(brew --prefix tcl-tk)/include -L$(brew --prefix zlib)/include -L$(brew --prefix bzip2)/include" \
  PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
  CFLAGS="-I$(brew --prefix tcl-tk)/include -I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix zlib)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" \
  LDFLAGS="-I$(brew --prefix tcl-tk)/lib -L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib"
  pyenv install 3.9.0

$ clang --version
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Cela a fonctionné pour moi pour installer 3.8.3 et 3.9.0

$ sw_vers
ProductName:    macOS
ProductVersion: 11.2.3
BuildVersion:   20D91

Mes sources où j'ai trouvé la solution:


1 commentaires

Réinstaller Xcode-Select (et Rebooting) a fonctionné pour moi



7
votes

J'ai utilisé ce qui suit et cela a fonctionné

cc = gcc pyenv install 3.7.10


0 commentaires

1
votes

Pour moi, c'était un problème avec le compilateur Clang que Pyenv essayait d'utiliser. Comme j'avais une version anaconda active qui a été configurée avec Pyenv, il a essayé d'utiliser la version Clang groupée avec Anaconda:

pyenv install 3.9.5

avec:

Pre> xxx Pre>

J'ai pu utiliser le compilateur Xcode Clang et tout a bien fonctionné. J'ai pu installer la nouvelle version de Python avec un type typique:

pyenv shell system


0 commentaires

0
votes

Je sais que c'est un peu vieux, mais je viens de rencontrer le problème et de supprimer et de réinstaller des outils de ligne de commande a fonctionné pour moi.


1 commentaires

Cela pourrait être une réponse utile mais non sans plus de détails. Comme, quels outils de ligne de commande?



0
votes

Réinstallez Xcode, a également fonctionné pour moi!

nullck➜~» sw_vers                                                                                                                                                                                                                  [11:03:20]
ProductName:    macOS
ProductVersion: 11.5.2
BuildVersion:   20G95
nullck➜~» sudo rm -rf /Library/Developer/CommandLineTools                                                                                                                                                                          [11:03:53]
Password:
sudo: a password is required
nullck➜~» sudo rm -rf /Library/Developer/CommandLineTools                                                                                                                                                                          [11:04:37]
Password:
nullck➜~» xcode-select --install                                                                                                                                                                                                   [11:05:07]
xcode-select: note: install requested for command line developer tools
nullck➜~»                                                                                                                                                                                                                          [11:06:31]
nullck➜~»                                                                                                                                                                                                                          [11:37:33]
nullck➜~» pyenv install 3.10.1                                                                                                                                                                                                     [11:37:34]
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.10.1.tar.xz...
-> https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tar.xz
Installing Python-3.10.1...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.10.1 to /Users/nullck/.pyenv/versions/3.10.1


0 commentaires

1
votes

Il a été réparé avec la sortie d'hier. Attacher le problème fermé GIT ici

Dans une versions pyenv pyenv en bref de 3.7.13, 3.8.13, 3.9.11 et 3.10.3 fonctionnera bien à partir de maintenant.


0 commentaires