Сообщение об ошибке 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

Устранение ошибки Python PyCharm - 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. Это относительно просто, и без этих двух шагов вы не сможете решить большинство проблем, с которыми наверняка столкнетесь.   -  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 с помощью PyCharm GUI очень просто , это быстро понять (также посмотрите PyPI). После этого неплохо потратить еще несколько минут, чтобы узнать, как это сделать вручную. PATH, возможно, более сложный, узнайте о том, как установить вам переменные среды ОС (примерно 2 или 3 часа). Несколько версий Python должны сводиться к первой.   -  person bad_coder    schedule 27.03.2021
comment
Попробуйте создать новый venv с графическим интерфейсом (первая ссылка в предыдущем комментарии). Если все пойдет хорошо, вы запустите его через несколько минут.   -  person bad_coder    schedule 27.03.2021
comment
@bad_coder благодарим вас за ссылку на эти ресурсы! Довольно безумно - я просто сбросил настройки по умолчанию для PyCharm, и, похоже, проблема решилась. (Возможно, я исправил все, что у меня было не так с PATH). Я действительно ценю вашу помощь - если вы напишете что-нибудь в духе этого и того, что вы сказали в ответе, я награду за вашу помощь награду.   -  person Ethan    schedule 27.03.2021
comment
@Ethan xkcd 1987   -  person bad_coder    schedule 27.03.2021


Ответы (1)


  1. Что-то может быть сломано с моими виртуальными средами

Самое простое решение - использовать venv - это стандартная библиотека и, следовательно, лучшая база для виртуальных сред. (Для полноты картины стоит упомянуть, что исторически существовало несколько решений для этого.) В качестве примера создать venv с графическим интерфейсом PyCharm легко, он создает новый интерпретатор из базовый интерпретатор Python, при желании совместно использующий свои пакеты сайтов. Графический интерфейс пользователя позволяет вам взаимодействовать с PyPI для установки дополнительных пакетов.

В конце концов, стоит научиться делать то же самое с помощью командной строки, см. Venv - Создание виртуальных сред. Это сводится к 3 командам

  1. Создайте venv (поскольку на вашем PATH установлен Python)

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

  2. Активируйте venv (это зависит от ОС, см. Документацию)

    <venv>/bin/activate

  3. После активации используйте pip для установки любых библиотек, которые вы хотите

    pip install library_name

После создания и активации venv он готов к использованию на терминале (внутри или вне PyCharm), или вы можете использовать его с запускать конфигурации в PyCharm.

Теперь в вашем случае вы также используете Anaconda, который управляет пакетами и средами за вас. Но важно понимать, что Anaconda по большей части выполняет описанные выше шаги, заключенные в собственный графический интерфейс, обратите внимание на сходство с Как найти путь к интерпретатору Anaconda Python.

Помимо этого, существует жесткое правило, согласно которому venvs нельзя копировать или перемещать. У них есть жестко запрограммированные пути, которые сломаются. Итак, когда вы создаете venv, используйте его в каталоге, в котором вы его создали. Весь смысл venvs в том, что если вы что-то сломаете, вы просто создадите новое на лету. В конце концов, вы захотите написать свой собственный сценарий оболочки для автоматизации создания 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 (может быть другим микроверсии, проверьте, запустив исполняемый файл в каждом каталоге с помощью _ 12_). Значение имен путей хорошо объяснено в 4. . Использование Python на Macintosh

Чтобы избежать путаницы, у меня на PATH установлена ​​только последняя версия Python. Любая другая необходимая мне базовая версия 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 вручную, чтобы лучше понять, что эти инструменты делают для вас.

Наконец, сама PyCharm IDE реализована на Java. Когда вы запускаете IDE, у нее есть собственный исполняемый файл, и в редких случаях что-то, связанное с интерпретатором Python, должно приводить к сбою IDE при запуске. С другой стороны, вы знаете, что виноват один из ваших интерпретаторов Python, а именно из сообщения об ошибке:

Python Version: 3.6.4 (3.6.4)

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

Причина: изображение не найдено.

Если вы не можете запустить среду IDE для решения проблемы изнутри, избавьтесь от любых ссылок на проблемный интерпретатор , отредактировав файлы конфигурации . Я не знаю, как это сделать точно, но если вы используете Anaconda, должна быть возможность запускать графический интерфейс Anaconda извне IDE, чтобы также избавиться от проблемного интерпретатора.

В качестве примечания: если у вас возникнут проблемы из-за наличия нескольких интерпретаторов на PATH, используйте команду which python в bash или < команда href = "https://ss64.com/nt/where.html" rel = "noreferrer"> _ 25_ в Windows. Это скажет вам, какой интерпретатор Python на вашем PATH вызывается, когда вы или какое-либо приложение выполняете python something в командной строке.

Я не думаю, что этот вопрос (или другие связанные вопросы) содержат достаточно информации, чтобы полностью диагностировать проблему. Это потребует тщательного изучения точного Конфигурации Anaconda, но о той же ошибке сообщили и пользователи brew.

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

person bad_coder    schedule 27.03.2021