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 se está bloqueando 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.

47
Faisal Manzer 7 oct. 2019 a las 18:37

9 respuestas

La mejor respuesta

Me encontré con el mismo problema y me sentí un poco incómodo de vincular manualmente las cosas.

Pude resolver el problema simplemente

  1. Instalación de openssl a través de homebrew:
    brew install openssl
    
  2. 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.

Editar: de acuerdo con esta pregunta, el uso de DYLD_FALLBACK_LIBRARY_PATH podría ser preferible a DYLD_LIBRARY_PATH.

61
bixel 4 nov. 2019 a las 09:44

Debe ser el uso de algunas dependencias como 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.
3
twocucao 8 oct. 2019 a las 05:28

Estaba viendo problemas similares con ansible. El culpable fue asn1crypto, y el problema ha sido ya solucionado.

Mi solución fue eliminarlo manualmente y reinstalarlo con pip:

  1. rm -r /usr/local/lib/python2.7/site-packages/asn1crypto*. Esto permitió que pip funcionara sin problemas.
  2. pip install asn1crypto, que instaló 1.2.0:
  Found existing installation: asn1crypto 0.24.0
    Uninstalling asn1crypto-0.24.0:
      Successfully uninstalled asn1crypto-0.24.0
Successfully installed asn1crypto-1.2.0

NOTA : puede verificar si asn1crypto es el culpable ejecutando python en modo detallado, p. python -v $(which ansible). En mi caso, se bloqueó al hacer algunas importaciones relacionadas con asn1crypto:

# /usr/local/lib/python2.7/site-packages/asn1crypto/_perf/_big_num_ctypes.pyc matches /usr/local/lib/python2.7/site-packages/asn1crypto/_perf/_big_num_ctypes.py
import asn1crypto._perf._big_num_ctypes # precompiled from /usr/local/lib/python2.7/site-packages/asn1crypto/_perf/_big_num_ctypes.pyc
[1]    59247 abort      python -v $(which ansible)

Relacionado: https://github.com/Homebrew/homebrew-core/issues/44996

2
memoselyk 6 dic. 2019 a las 22:25

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. reemplazando los enlaces libssl.dylib y libcrypto.dylib en /usr/local/lib con enlaces a libs desde la instalación de Homebrew de openssl.

Los pasos son:

Obtenga libs nuevas

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 las antiguas

4) cd /usr/local/lib

5) mv libssl.dylib libssl_bak.dylib

6) mv libcrypto.dylib libcrypto_bak.dylib

Crear nuevos enlaces

7) sudo ln -s libssl.1.0.0.dylib libssl.dylib

8) sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib

12
JuroOravec 14 oct. 2019 a las 20:11

Parece que fue un problema de Homebrew. Lo hice brew reinstall python3 y funcionó.

0
mylittleswift 19 dic. 2019 a las 19:46

Advertencia: no soy un experto en seguridad, ¡y esta solución se mete con las bibliotecas criptográficas!

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 actualizada a MacOS 10.15
  • Uso python / pip instalado a través de homebrew: brew install python
  • pip3 estaba fallando con SIGABRT

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.
35
honkaboy 9 oct. 2019 a las 18:05

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 realmente 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 a favor de sus propias bibliotecas TLS y criptográficas.

Intentando ejecutar brew link openssl:

Advertencia: se niega 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 vincularlas manualmente.

12
Andrei Radulescu 28 oct. 2019 a las 19:03

Para mí fue suficiente reinstalar el paquete de criptografía de Python.

pip remove cryptography
pip install cryptography
4
Tony Stark 2 ene. 2020 a las 19:18

Si está utilizando Kevlar de DevMate, actualice a 4.3.1, que "solucionó el bloqueo de macOS Catalina causado por la versión de libcrypto.dylib ".

0
Winter 9 dic. 2019 a las 03:01
58272830