Uruchomiłem projekt Django z nową macOS Catalina i działałem dobrze.
Zainstalowałem oh_my_zsh, a następnie próbowałem uruchomić ten sam projekt, który ulega awarii z następującymi błędami. Odinstalowałem oh_my_zsh i spróbowałem ponownie, ale to nie zadziałało.
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.
python
oh-my-zsh
libcrypto
macos-catalina
Faisal Manzer
źródło
źródło
Odpowiedzi:
Właśnie natknąłem się na ten sam problem i czułem się trochę nieswojo, aby ręcznie łączyć różne elementy.
Po prostu udało mi się rozwiązać problem
Właśnie dodałem tę linię do mojego .zshrc.
Edycja: Zgodnie z tym pytaniem użycie
DYLD_FALLBACK_LIBRARY_PATH
może być lepsze niżDYLD_LIBRARY_PATH
.Edit 2: Jak wspomniano w komentarzu poniżej, to należy prawdopodobnie Akceptowane odpowiedź. Po prostu zainstaluj ponownie
cryptography
pakiet.źródło
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/opt/openssl/lib
prace zgodne z opisem. Dzięki za wskazówkę!Uwaga: nie jestem ekspertem od bezpieczeństwa, a to rozwiązanie jest bałaganem w bibliotekach kryptograficznych!
Nie sądzę, że twój problem wynika z zsh lub oh-my-zsh. Moje najlepsze przypuszczenie: niektóre biblioteki kryptograficzne zainstalowane w systemie MacOS 10.15 są niezgodne z
python3
instalacją Homebrew .Oto, co naprawiło problem
Moja sytuacja w kontekście:
brew install python
pip3
zawodziłSIGABRT
Nagłówek raportu o błędach systemu:
źródło
Dla mnie wystarczyło ponownie zainstalować pakiet kryptograficzny Pythona.
źródło
pip uninstall cryptography
zamiastremove
.Wolę kombinację odpowiedzi @bixel, @Juro Oravec i @honkaboy:
W ten sposób, przynajmniej teoretycznie, podczas aktualizacji openssl dylibs zawsze będą wskazywać najnowsze wersje.
/usr/local/opt/openssl
jest tak naprawdę linkiem do/usr/local/Cellar/openssl/Cellar/openssl/1.0.2t
(wersja openssl zainstalowana przez brew).Przyczyna tego problemu jest wyjaśniona przez napar:
Próbuję uruchomić
brew link openssl
:Zasadniczo musisz połączyć je ręcznie.
źródło
r.xuan z tego wątku Apple Dev określił kroki obejścia błędu
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
, zastępując łączalibssl.dylib
ilibcrypto.dylib
w/usr/local/lib
linkami do bibliotek lib z instalacji Homebrewopenssl
.Kroki są następujące:
Zdobądź świeże lib
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/
Utwórz kopię zapasową starych
4)
cd /usr/local/lib
5)
mv libssl.dylib libssl_bak.dylib
6)
mv libcrypto.dylib libcrypto_bak.dylib
Utwórz nowe linki
7)
sudo ln -s libssl.1.0.0.dylib libssl.dylib
8)
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
źródło
Musi to być wykorzystanie pewnych zależności, takich jak kryptografia
Rozwiązanie:
znajdź tę linię; usuń go, a wszystko będzie dobrze
Oto mój problem
źródło
Widziałem podobne problemy z
ansible
. Sprawca byłasn1crypto
, a problem został już rozwiązany .Moim rozwiązaniem było ręczne usunięcie i ponowna instalacja za pomocą
pip
:rm -r /usr/local/lib/python2.7/site-packages/asn1crypto*
. Pozwoliło topip
na pracę bez problemów.pip install asn1crypto
, który zainstalował1.2.0
:UWAGA : Możesz sprawdzić, czy
asn1crypto
jest to winowajcą, działającpython
w trybie pełnym, nppython -v $(which ansible)
. W moim przypadku rozbił się podczas wykonywania niektórychasn1crypto
powiązanych importów:Powiązane: https://github.com/Homebrew/homebrew-core/issues/44996
źródło
rm -r
polecenie zgodnie z listą w odpowiedzi, następnie usunąłem środowisko Pythona ztrellis/.trellis/virtualenv
katalogu, a następnie zrobiłem to za pomocą trellis-cli,trellis init
które odtworzyło środowisko Pythona i zainstalowało zależności za pomocą pip.Jeśli używasz Kevlaru z DevMate , zaktualizuj do wersji 4.3.1, która „ Naprawiła awarię macOS Catalina spowodowaną wersją libcrypto.dylib”.
źródło
Wygląda na to, że był to problem Homebrew. Zrobiłem
brew reinstall python3
i zadziałało.źródło
Próbować:
Pracował dla mnie!
źródło
Aby postępować zgodnie z powyższymi odpowiedziami, chciałem połączyć plik libssl.dylib, ale nie znalazłem takiej lokalizacji jak poniżej:
Jednak jako zaakceptowana odpowiedź @bixel znalazła plik w poniższej lokalizacji
i zadziałało dla mnie.
źródło
Poznałem ten sam problem gdy używałem
ctypes.cdll
otworzyć/usr/lib/libcrypto.dylib
zPython 3.7
. Jednakdylib
MOGĄ zostać otwarte za pomocąPython 2.7
.Zainstalowałem najnowszą
openssl
wersjębrew install
, następnie ustawiłem zmienne środowiskowe i utworzyłem linki zgodnie z powyższymi sugestiami, NIC się nie wydarzyło.Po kilku godzinach kopania znalazłem rozwiązanie obejścia.
Znalazłem kilka
libcrypto.X.dylib
w/usr
jak następuje,Po pierwsze,
/usr/lib
zamiast tego użyłem następującego .Można go załadować, ale brakuje niektórych apis,
W
/usr/lib/libcrypto.X.dylib
ścieżce skryptu utworzyłem link .Następnie dodaj ścieżkę do
DYLD_FALLBACK_LIBRARY_PATH
W końcu zadziałało.
źródło