Съобщение за грешка на Dyld при стартиране на PyCharm

Опитвам се да разбера този проблем от няколко седмици, но все още съм заседнал. Проучвах го и бавно получавах повече информация, но все още не успях да го разреша.

Прочетох тези подобни въпроси в Stack Overflow:

dyld: Библиотеката не е заредена: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Python

dyld: Библиотеката не е заредена: /System/Library/Frameworks /CoreFoundation.framework/Versions/A/CoreFoundation

Разрешаване на грешка на PyCharm python - dyld: Библиотеката не е заредена

Проблемът е, че всеки път, когато стартирам PyCharm, изскача грешката по-долу:

Process:               Python [15298]
Path:                  /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
Identifier:            Python
Version:               3.6.4 (3.6.4)
Code Type:             X86-64 (Native)
Parent Process:        pycharm [14715]
Responsible:           pycharm [14715]
User ID:               501

Date/Time:             2021-03-27 08:19:23.857 -0700
OS Version:            macOS 11.2.3 (20D91)
Report Version:        12
Bridge OS Version:     3.0 (14Y908)
Anonymous UUID:        130B1388-444D-6CF3-9D98-7F06C81783B0

Sleep/Wake UUID:       89450DAE-41C7-4035-B0DA-8AAB177D9DD3

Time Awake Since Boot: 82000 seconds
Time Since Wake:       1000 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  dyld: No shared cache present
Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
  Reason: image not found

Binary Images:
       0x100000000 -        0x100000fff +org.python.python (3.6.4 - 3.6.4) <E585A67D-C0DB-448A-2E74-422D61BDC1C1> /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
    0x7fff639aa000 -     0x7fff63a45fff  dyld (832.7.3) <0D4EA85F-7E30-338B-9215-314A5A5539B6> /usr/lib/dyld

Model: MacBookPro14,2, BootROM 429.80.1.0.0, 2 processors, Dual-Core Intel Core i5, 3.1 GHz, 8 GB, SMC 2.44f6
Graphics: kHW_IntelIrisGraphics650Item, Intel Iris Plus Graphics 650, spdisplays_builtin
Memory Module: BANK 0/DIMM0, 4 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C3531324D3332443250462D3039
Memory Module: BANK 1/DIMM0, 4 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C3531324D3332443250462D3039
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x171), Broadcom BCM43xx 1.0 (7.77.111.1 AirPortDriverBrcmNIC-1675.1)
Bluetooth: Version 8.0.3d9, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.0 Bus
USB Device: Apple T1 Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 41.4
Thunderbolt Bus: MacBook Pro, Apple Inc., 41.4

Вярвам, че това започна да се случва след актуализиране на моята инсталация на PyCharm, Python или моите инструменти за разработчици на Xcode. От моето проучване стигнах до извода, че няколко възможни проблема може да са причина за това.

  1. Нещо може да се повреди с моите виртуални среди

  2. Нещо може да е счупено с моя PATH

  3. Нещо може да се повреди при опит за управление на множество версии на Python на моя компютър

Още малко информация за моята ситуация.

В горната част на съобщението за грешка на PyCharm се показва редът:

Path:/Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python 

Това изглежда предполага, че PyCharm може да се опитва да стартира с Python 3.6?

Когато напиша командата env в терминала, получавам следния изход:

PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions
 /3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/
Versions/3.9/bin:/Users/my_name/opt/anaconda3/bin:/Users/my_name/opt/anaconda3/condabin:/anaconda3/bin:
 /Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/3.6/
bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/3.6/
bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin

Няколко от решенията, споменати в предишните въпроси, включват или промяна на PATH, или изтриване/пресъздаване на виртуалната среда.

Наистина не съм запознат с това как да направя нито едно от тези неща. Някой има ли представа какво мога да направя, за да спра това съобщение за грешка да се появява всеки път, когато стартирам PyCharm? Аз съм новак, когато става въпрос за терминал, така че не съм сигурен, че разбирам предишните решения.

Някой има ли идеи какъв може да е проблемът или какво мога да направя, за да поправя това? Опитах да преинсталирам както Python, така и PyCharm и нито едно от тези решения не реши проблема.

Note, I am running:
Max OS: Big Sur 11.2.3
Python 3.9
PyCharm: Community 2020.3.4

person Ethan    schedule 24.03.2021    source източник
comment
можете ли да опитате: PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin" && export PATH във вашия терминал и след това да отворите pycharm?   -  person marcos    schedule 27.03.2021
comment
Надявам се разбирате, че каквото и да е решението за това, трябва да научите как да създавате venv и как да актуализирате PATH. Сравнително лесно е и без тези 2 стъпки няма да можете да разрешите повечето проблеми, с които със сигурност ще се сблъскате.   -  person bad_coder    schedule 27.03.2021
comment
@Marcos, за съжаление, това не реши проблема.   -  person Ethan    schedule 27.03.2021
comment
@bad_coder Оценявам прозрението - ще продължа да чета ресурси, за да науча повече за тях.   -  person Ethan    schedule 27.03.2021
comment
@Ethan за venv, използвайки GUI на PyCharm е наистина лесно , бързо се разбира (разгледайте също PyPI). След това е добре да отделите още няколко минути, за да научите как да го направите ръчно. ПЪТЯТА може би е по-сложна, научете за това как да зададете променливите на средата на ОС (това е всичко, 2 или 3 часа). Множеството версии на Python трябва да се свеждат до първата.   -  person bad_coder    schedule 27.03.2021
comment
Опитайте да създадете нов venv с GUI (първата връзка в предишния коментар). Ако всичко върви добре, ще стартирате това след няколко минути.   -  person bad_coder    schedule 27.03.2021
comment
@bad_coder благодаря ви за връзката към тези ресурси! Доста лудост - току-що нулирах настройките по подразбиране за PyCharm и изглежда, че реши проблема. (Можеше да поправя всичко, което имах грешка с PATH). Наистина оценявам вашата помощ обаче - ако поставите нещо подобно на това и това, което казахте в отговор, ще присъдя наградата за вашата помощ.   -  person Ethan    schedule 27.03.2021
comment
@Итън xkcd 1987   -  person bad_coder    schedule 27.03.2021


Отговори (1)


  1. Нещо може да се повреди с моите виртуални среди

Най-лесното решение е използването на venv - това е стандартна библиотека и следователно най-добрата базова линия за виртуални среди. (За изчерпателност си струва да споменем, че исторически е имало редица решения за това.) Като пример създаването на venv с GUI на PyCharm е лесно, то създава нов интерпретатор от базов интерпретатор на Python, по желание споделящ своите пакети за сайт. GUI ви позволява да взаимодействате с PyPI за инсталиране на допълнителни пакети.

В крайна сметка си струва да се научите да правите същото с помощта на командния ред, вижте venv — Създаване на виртуални среди. Това се свежда до 3 команди

  1. Създайте venv (тъй като имате Python на вашия PATH)

    c:\>python -m venv c:\path\to\myenv

  2. Активирайте venv (това е специфично за ОС, вижте документацията)

    <venv>/bin/activate

  3. След активиране използвайте pip, за да инсталирате библиотеките, които искате

    pip install library_name

След като venv бъде създаден и активиран, той е готов за използване на терминала (вътре или извън PyCharm) или можете да го използвате с изпълнете конфигурации в PyCharm.

Сега във вашия случай вие също използвате Anaconda, която управлява пакетите и средите вместо вас. Но е важно да разберете, че това, което Anaconda прави в по-голямата си част, са горните стъпки, обвити в нейния собствен GUI, вижте приликите с Намиране на вашия път за интерпретатор на Anaconda Python.

Освен това има строго правило, че venvs не трябва да се копират или преместват. Те имат твърдо кодирани пътеки вътре в тях, които ще се счупят. Така че, когато създавате venv, използвайте го в директорията, в която сте го създали. Целият смисъл на venvs е, че ако счупите нещо, вие просто създавате ново в движение. В крайна сметка ще искате да напишете свой собствен shell скрипт, за да автоматизирате създаването на venvs.

  1. Нещо може да е счупено с моя PATH
PATH=
/Library/Frameworks/Python.framework/Versions/3.9/bin:
/Library/Frameworks/Python.framework/Versions/3.9/bin:
/Library/Frameworks/Python.framework/Versions/3.9/bin:
/Library/Frameworks/Python.framework/Versions/3.9/bin:
/Users/my_name/opt/anaconda3/bin:
/Users/my_name/opt/anaconda3/condabin:
/anaconda3/bin:
/Library/Frameworks/Python.framework/Versions/3.6/bin:
/Library/Frameworks/Python.framework/Versions/3.6/bin:
/Library/Frameworks/Python.framework/Versions/3.6/bin:
/Library/Frameworks/Python.framework/Versions/3.6/bin:
/usr/local/bin:
/usr/bin:/bin:
/usr/sbin:
/sbin:
/Library/TeX/texbin:
/Library/Apple/usr/bin

В macOS/Linux двоеточие : се използва като разделител на пътя. Така че, ако разделим вашата променлива на средата PATH на отделни редове, ще видим, че имате повторени Python 3.9 и Python 3.6 (може да са различни микро версии, проверете, като стартирате изпълнимия файл във всяка директория с python --version). Значението на имената на пътищата е добре обяснено в 4 . Използване на Python на Macintosh

За да избегна объркване, имам само най-новата версия на Python на моя PATH. Всяка друга базова версия на Python, от която се нуждая, се избира прозрачно чрез активиране на правилния venv.

Имате и bin пътищата към Anaconda, проверете вътре в тях, за да видите какво прави Anaconda изпълним файл. Освен това имате нормалните неща за ОС на /Library/Apple/usr/bin, които не трябва да пречат на нищо, свързано с разработката на Python.

И накрая, откриването на модули е по-динамично от това, което е във вашия PATH. Пътят за търсене на модул sys.path се попълва с път, откъдето изпълнявате скрипт, което означава, че всеки модул/пакет на directory\where_you_execute\python your_script.py е откриваем (можете да го проверите по време на изпълнение).

  1. Нещо може да се повреди при опит за управление на множество версии на Python на моя компютър

Ето къде става сложно. Ако работите с различни преводачи, версии на пакети и т.н... В крайна сметка ще искате да получите инструмент на трета страна, който помага да управлявате всичко това, което би било Anaconda или Virtualenv или Поезия или т.н... Но по същество всичко това, което правят, е да управляват venvs, добавяйки функционалност и сложност, важно е да научите как да създавате и управлявате venvs ръчно, за да разберете по-добре какво правят тези инструменти за вас.

И накрая, самата IDE на PyCharm е внедрена в Java. Когато стартирате IDE, той има свой собствен изпълним файл и е рядък случай нещо свързано с интерпретатор на Python да накара IDE да се срине при стартиране. От друга страна знаете, че виновникът е един от вашите интерпретатори на Python, а именно от съобщението за грешка:

Python Version: 3.6.4 (3.6.4)

и конкретната грешка казва всичко (или файловете са били преместени, или някаква грешка е прекъснала връзките):

Причина: изображението не е намерено.

Ако не можете да стартирате IDE, за да разрешите проблема отвътре, отървете се от всякакви препратки към проблемния интерпретатор като редактирате конфигурационните файлове . Не знам как да направя това точно, но ако използвате Anaconda, трябва да е възможно да стартирате GUI на Anaconda извън IDE, за да се отървете и от проблемния интерпретатор.

Като странична бележка, ако срещнете проблеми поради наличието на няколко интерпретатора на PATH, използвайте командата which python на bash или < команда href="https://ss64.com/nt/where.html" rel="noreferrer">where python в Windows. Това, което ще ви каже, е кой интерпретатор на Python на вашия PATH се извиква, когато вие или някое приложение изпълните python something на командния ред.

Не мисля, че този въпрос (или другите свързани въпроси) имат достатъчно информация, за да диагностицират напълно проблема. Това ще изисква задълбочен преглед на точното Конфигурации на Anaconda - но същата грешка беше докладвана и от потребителите на brew.

Най-вероятният сценарий е, че когато стартирате PyCharm, списъкът с интерпретатори се попълва и това извиква Anaconda. В един момент след надграждане до най-новата версия на Python една от съществуващите среди се разпадна в синхрон, защото се разреши на предишен базов интерпретатор на PATH (вместо да бъде твърдо кодиран към конкретна инсталация.) Нещо трябва да се е объркало чрез несъвместимост между пакети, която изисква обща актуализация, нещо е изтрито или просто е кеширано, което се нуждае от изчистване.

person bad_coder    schedule 27.03.2021