Al instalar Python 3.6.13 en mi MacBook Air, OS Big Sur, usando el comando pyenv install 3.6.13, aparece este error:
Installing Python-3.6.13... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 11.3 using python-build 20180424) Inspect or clean up the working tree at /var/folders/7j/0qtpb8vs1_s34ynv0f6rrs840000gn/T/python-build.20210304114832.65954 Results logged to /var/folders/7j/0qtpb8vs1_s34ynv0f6rrs840000gn/T/python-build.20210304114832.65954.log Last 10 log lines: ./Modules/posixmodule.c:8210:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration] ret = sendfile(in, out, offset, &sbytes, &sf, flags); ^ ./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code] Py_FatalError("abort() called from Python code didn't abort!"); ^~~~~~~~~~~~~ 1 warning and 1 error generated. 1 warning generated. make: *** [Modules/posixmodule.o] Error 1 make: *** Waiting for unfinished jobs....Cualquier sugerencia sobre cómo solucionar este u otro trabajo para instalar python 3.6.13 sería muy apreciada. Actualmente tengo python 3.8, pero necesito 3.6 para ejecutar:
conda install -c deezer-research spleeterCFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.13 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)funcionó en MacOs 11.2.2
De acuerdo con esto: https://github.com/pyenv/pyenv/issues/1737#issuecomment-731672292 esto está relacionado con un problema de confirmación y lo siguiente lo soluciona. Funcionó para mí.
CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.13 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)La respuesta de Jacob Anderson fue correcta, pero vale la pena señalar que no es necesario realizar el paso peligroso:
sudo rm -rf /Library/Developer/CommandLineToolsLas cosas me funcionaron (instalé Python 3.6.0 en MacOS 11.4) sin hacerlo. ¡Gracias a Jacob!
Los siguientes pasos finalmente funcionaron para mi MacBook Air M1 con Big Sur 11.6 .
‼️ Tenga en cuenta que esta instrucción es para el terminal x86 emulado Rosetta 2.
Instalar cerveza:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Instale las dependencias recomendadas:
arch -x86_64 brew install openssl readline sqlite3 xz zlibInstale Pyenv con cerveza:
arch -x86_64 brew install pyenvConfigure el entorno de su shell (en mi caso, zsh):
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrcReinicie la terminal.
Agregue variables de entorno (en mi caso, el problema fue con zlib y openssl):
export LDFLAGS="-L/usr/local/opt/zlib/lib" export CPPFLAGS="-I/usr/local/opt/zlib/include" export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export CPPFLAGS="-I/usr/local/opt/openssl@3/include"Instale la versión de Python requerida con el parche:
arch -x86_64 pyenv install --patch 3.6.15 <<(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)Cambie el shell a la nueva versión de Python:
pyenv shell 3.6.15Compruebe la versión de Python utilizada actualmente:
pyenv which python3Estaba enfrentando esto en la máquina mu ubuntu, desinstalé Brew y reinstalé pyenv desde la fuente. Funcionó para mí.
Gracias a jordanm, la solución fue seguir https://github.com/pyenv/pyenv/issues/1740#issuecomment-738749988
brew reinstall zlib bzip2De los comentarios de la gente (gracias a Lukasz Czerwinski y Alex Veksler) parece que muchos ven este siguiente paso como opcional (e incluso peligroso) y prefieren omitirlo; sin embargo, vale la pena intentarlo si nada más funciona:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install Ya sea que elija omitir el último paso o no, continúe editando .zshrc o .bashrc usando:
nano ~/.zshrc or nano ~/.bashrcy añadir:
export PATH="$HOME/.pyenv/bin:$PATH" export PATH="/usr/local/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" export LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/bzip2/lib" export CPPFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include"después de editar y guardar ese archivo, ejecute:
. ~/.zshrc or . ~/.bashrcLuego ejecute el siguiente comando para instalar (cambiando 3.6.0 por el parche deseado)
CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.0 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)