Python se bloquea en MacOS 10.15 Beta(19A582a) con "/usr/lib/libcrypto.dylib"
oh-my-zsh macos-catalina (5)
Acabo de encontrar el mismo problema y me sentí un poco incómodo al vincular manualmente las cosas.
Pude resolver el problema simplemente
-
Instalación de openssl a través de homebrew:
brew install openssl
-
Apuntando hacia las bibliotecas dinámicas desde openssl a través de DYLD_LIBRARY_PATH:
export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$DYLD_LIBRARY_PATH
Acabo de agregar esa línea a mi .zshrc.
Ejecuté mi proyecto Django con la nueva MacOS Catalina y estaba funcionando bien.
Instalé oh_my_zsh y luego traté de ejecutar el mismo proyecto que está fallando con los siguientes errores.
Desinstalé oh_my_zsh e intenté nuevamente pero no funcionó.
Path: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
Identifier: Python
Version: 3.7.4 (3.7.4)
Code Type: X86-64 (Native)
Parent Process: Python [7526]
Responsible: Terminal [7510]
User ID: 501
Date/Time: 2019-10-07 20:59:20.675 +0530
OS Version: Mac OS X 10.15 (19A582a)
Report Version: 12
Anonymous UUID: CB7F20F6-96C0-4F63-9EC5-AFF3E0989687
Time Awake Since Boot: 3000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
Debe ser el uso de algunas dependencias como la criptografía.
Solución:
cd your-site-packages-path/
vim ./asn1crypto/_int.py
encuentra esta línea; bórralo y todo está bien
# from ._perf._big_num_ctypes import libcrypto
Aqui esta mi problema
Process: Python [85179]
Path: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
Identifier: Python
Version: 3.7.4 (3.7.4)
Code Type: X86-64 (Native)
Parent Process: ??? [85161]
Responsible: iTerm2 [11711]
User ID: 501
Date/Time: 2019-10-07 23:00:25.143 +0800
OS Version: Mac OS X 10.15 (19A582a)
Report Version: 12
Bridge OS Version: 3.0 (14Y906)
Anonymous UUID: 32C73ADD-1291-FA0E-DC02-48D539674325
Time Awake Since Boot: 42000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
Prefiero una combinación de @bixel, @Juro Oravec y @honkaboy responde:
brew install openssl
cd /usr/local/lib
sudo ln -s /usr/local/opt/openssl/lib/libssl.dylib libssl.dylib
sudo ln -s /usr/local/opt/openssl/lib/libcrypto.dylib libcrypto.dylib
De esta manera, al menos en teoría, al actualizar openssl, los dylibs siempre apuntarán a las últimas versiones.
/usr/local/opt/openssl
es en realidad un enlace a
/usr/local/Cellar/openssl/Cellar/openssl/1.0.2t
(la versión de openssl instalada por brew).
La razón por la que ocurre el problema se explica en realidad por brew:
openssl es solo de barril, lo que significa que no se vinculó en / usr / local, porque Apple ha desaprobado el uso de OpenSSL en favor de sus propias bibliotecas TLS y criptográficas.
Intentando ejecutar
brew link openssl
:
Advertencia: Negarse a vincular el software proporcionado por macOS: openssl Si necesita tener openssl primero en su ejecución PATH: echo ''export PATH = "/ usr / local / opt / openssl / bin: $ PATH"'' >> ~ / .bash_profile
Para que los compiladores encuentren openssl, es posible que deba configurar: export LDFLAGS = "- L / usr / local / opt / openssl / lib" export CPPFLAGS = "- I / usr / local / opt / openssl / include"
Para que pkg-config encuentre openssl, es posible que deba configurar: export PKG_CONFIG_PATH = "/ usr / local / opt / openssl / lib / pkgconfig"
Entonces, básicamente necesitas vincularlos manualmente.
r.xuan de este hilo de Apple Dev
identificó los pasos de una solución alternativa para el error
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
reemplazando los enlaces
libssl.dylib
y
libcrypto.dylib
en
/usr/local/lib
con enlaces a libs desde la instalación de
openssl
de Homebrew.
Los pasos son:
Obtenga libs frescas
1)
brew update && brew upgrade && brew install openssl
2)
cd /usr/local/Cellar/openssl/1.0.2t/lib
3)
sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/
Copia de seguridad de los viejos
4)
cd /usr/local/lib
5)
mv libssl.dylib libssl_bak.dylib
6)
mv libcrypto.dylib libcrypto_bak.dylib
Crea nuevos enlaces
7)
sudo ln -s libssl.1.0.0.dylib libssl.dylib
8)
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
Advertencia: no soy un experto en seguridad, ¡y esta solución se mete con las bibliotecas de cifrado!
No creo que tu problema se deba a zsh u oh-my-zsh.
Mi mejor conjetura: algunas bibliotecas criptográficas instaladas con MacOS 10.15 son incompatibles con la instalación de
python3
de Homebrew.
Esto es lo que solucionó el problema para mí.
# Install openssl via homebrew.
# Note: According to homebrew, "openssl is keg-only, which means it was
# not symlinked into /usr/local, because Apple has deprecated use of
# OpenSSL in favor of its own TLS and crypto libraries."
brew install openssl
# Symlink those versions into /usr/local/lib, which gets Python to dynamically
# link against those instead of the version in /usr/lib/.
# Got the idea from https://forums.developer.apple.com/thread/119429
cd /usr/local/lib
sudo ln -s /usr/local/Cellar/openssl/1.0.2t/lib/libssl.1.0.0.dylib libssl.dylib
sudo ln -s /usr/local/Cellar/openssl/1.0.2t/lib/libcrypto.1.0.0.dylib libcrypto.dylib
Mi situación para el contexto:
- Recientemente actualizado a MacOS 10.15
-
Yo uso python / pip instalado a través de homebrew:
brew install python
-
pip3
estaba fallando conSIGABRT
Encabezado del informe de error del sistema:
Process: Python [52429]
Path: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
Identifier: Python
Version: 3.7.4 (3.7.4)
Code Type: X86-64 (Native)
Parent Process: zsh [43309]
Responsible: iTerm2 [2316]
User ID: 501
Date/Time: 2019-10-09 09:52:18.148 -0700
OS Version: Mac OS X 10.15 (19A583)
Report Version: 12
Bridge OS Version: 4.0 (17P572)
Anonymous UUID:
Sleep/Wake UUID:
Time Awake Since Boot: 9900 seconds
Time Since Wake: 7300 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.