启动时出现 Dyld 错误消息 PyCharm
Dyld Error Message when launching PyCharm
几周来我一直在努力解决这个问题,但仍然卡住了。我一直在研究它并慢慢获得更多信息但仍然无法解决它。
我在 Stack Overflow 上阅读了这些类似的问题:
dyld: Library not loaded: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Python
dyld: Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
问题是每次我启动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 开发人员工具后开始出现的。根据我的研究,我得出结论,一些可能的问题可能会导致这种情况发生。
我的虚拟环境可能出了问题
我的路径可能有问题
尝试在我的计算机上管理多个 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 或 deleting/recreating 虚拟环境。
我真的不熟悉如何做这两件事。有没有人知道我可以做些什么来阻止每次启动 PyCharm 时弹出此错误消息?我是终端的新手,所以我不确定我是否理解以前的解决方案。
有没有人知道问题可能是什么或者我可以做些什么来解决这个问题?我已经尝试重新安装 Python 和 PyCharm,但这些解决方案都没有解决问题。
Note, I am running:
Max OS: Big Sur 11.2.3
Python 3.9
PyCharm: Community 2020.3.4
- Something might be broken with my Virtual Environments
最简单的解决方案是使用 venv - 它是标准库,因此是虚拟环境的最佳基准。 (为了完整起见,值得一提的是 for this.) As an example creating a venv with the PyCharm GUI is easy, it creates a new interpreter from the base Python interpreter optionally sharing its . The GUI lets you interface with PyPI 安装其他软件包。
最后,值得学习使用命令行来做同样的事情,see venv — Creation of virtual environments。这归结为 3 个命令
创建 venv(因为你的 PATH
上有 Python)
c:\>python -m venv c:\path\to\myenv
激活 venv(这是 OS 具体的,请参阅文档)
<venv>/bin/activate
激活后使用 pip 安装任何你想要的库
pip install library_name
在创建并激活 venv 后,它就可以在终端上使用了(在 PyCharm 内部或外部),或者您可以在 PyCharm 中与 run configurations 一起使用它。
现在,在您的情况下,您还使用了 Anaconda,它为您管理包和环境。但重要的是要认识到 Anaconda 所做的大部分工作是将上述步骤包装在它自己的 GUI 中,请参阅与 Finding your Anaconda Python interpreter path.
的相似之处
除此之外,还有一条硬性规定,即不得复制或移动 venv
s。它们内部有硬编码的路径,这些路径会中断。因此,当您创建 venv
时,请在创建它的目录中使用它。 venv
s 的全部意义在于,如果你破坏了某些东西,你只需即时创建一个新的。最终,您需要编写自己的 shell 脚本来自动创建 venv
s。
- Something might be broken with my 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(可能不同 micro versions, check by running the executable in each directory with python --version
). The meaning of the path names is well explained in 4. Using Python on a Macintosh
为了避免混淆,我的 PATH
上只有最新的 Python 版本。通过激活正确的 venv
.
透明地选择我需要的任何其他基本 Python 版本
您还有 bin
到 Anaconda 的路径,检查这些路径以查看 Anaconda 使什么可执行。除此之外,您在 /Library/Apple/usr/bin
处拥有正常的 OS 内容,不应干扰与 Python 开发相关的任何内容。
最后,模块发现比 PATH
中的模块更动态。 The module search path sys.path
填充了执行脚本的路径,这意味着 directory\where_you_execute\python your_script.py
上的任何 module/package 都是可发现的(您可以在 运行 时检查它).
- Something might be broken trying to manage multiple Python versions on my computer
这就是事情变得复杂的地方。如果你使用不同的解释器、包版本等...最终你会想要一个 3rd 方工具来帮助管理所有这些,这将是 Anaconda, or Virtualenv or Poetry 或等等...但基本上所有这些都是做什么的正在管理 venv
s 添加功能和复杂性,了解如何手动创建和管理 venv
s 以更好地了解这些工具为您做什么很重要。
最后,PyCharmIDE本身在Java中实现。当您启动 IDE 时,它有自己的可执行文件,与 Python 解释器相关的东西很少会导致 IDE 在启动时崩溃。从好的方面来说,您知道罪魁祸首是您的 Python 解释器之一,即来自错误消息:
Python Version: 3.6.4 (3.6.4)
具体错误说明了一切(文件被移动,或者某些错误破坏了链接):
"Reason: image not found".
如果您无法启动 IDE 以从内部解决问题,请删除对有问题的解释器的任何引用 。我不知道具体怎么做,但是如果你使用的是 Anaconda,应该可以从 IDE 外部启动 Anaconda GUI 来摆脱有问题的解释器。
附带说明一下,如果您 运行 由于 PATH
上有多个解释器而遇到问题,请在 Windows 上使用 which python
command on bash, or the where python
命令。这将告诉您当您或某些应用程序在命令行上执行 python something
时,正在调用 PATH
上的哪个 Python 解释器。
我认为这个问题(或其他相关问题)没有足够的信息来完全诊断问题。这需要深入查看确切的 Anaconda configurations - 但 brew 用户也报告了同样的错误。
最有可能的情况是,当您启动 PyCharm 时,解释器列表会填充并调用 Anaconda。在升级到最新的 Python 版本后的某一时刻,现有环境之一变得不同步,因为它解析为 PATH 上以前的基础解释器(而不是硬编码到特定安装。)一定是出了什么问题通过需要一般更新的包间不兼容,某些内容被删除,或者只是缓存需要清除。
几周来我一直在努力解决这个问题,但仍然卡住了。我一直在研究它并慢慢获得更多信息但仍然无法解决它。
我在 Stack Overflow 上阅读了这些类似的问题:
dyld: Library not loaded: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Python
dyld: Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
问题是每次我启动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 开发人员工具后开始出现的。根据我的研究,我得出结论,一些可能的问题可能会导致这种情况发生。
我的虚拟环境可能出了问题
我的路径可能有问题
尝试在我的计算机上管理多个 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 或 deleting/recreating 虚拟环境。
我真的不熟悉如何做这两件事。有没有人知道我可以做些什么来阻止每次启动 PyCharm 时弹出此错误消息?我是终端的新手,所以我不确定我是否理解以前的解决方案。
有没有人知道问题可能是什么或者我可以做些什么来解决这个问题?我已经尝试重新安装 Python 和 PyCharm,但这些解决方案都没有解决问题。
Note, I am running:
Max OS: Big Sur 11.2.3
Python 3.9
PyCharm: Community 2020.3.4
- Something might be broken with my Virtual Environments
最简单的解决方案是使用 venv - 它是标准库,因此是虚拟环境的最佳基准。 (为了完整起见,值得一提的是
最后,值得学习使用命令行来做同样的事情,see venv — Creation of virtual environments。这归结为 3 个命令
创建 venv(因为你的
PATH
上有 Python)c:\>python -m venv c:\path\to\myenv
激活 venv(这是 OS 具体的,请参阅文档)
<venv>/bin/activate
激活后使用 pip 安装任何你想要的库
pip install library_name
在创建并激活 venv 后,它就可以在终端上使用了(在 PyCharm 内部或外部),或者您可以在 PyCharm 中与 run configurations 一起使用它。
现在,在您的情况下,您还使用了 Anaconda,它为您管理包和环境。但重要的是要认识到 Anaconda 所做的大部分工作是将上述步骤包装在它自己的 GUI 中,请参阅与 Finding your Anaconda Python interpreter path.
的相似之处除此之外,还有一条硬性规定,即不得复制或移动 venv
s。它们内部有硬编码的路径,这些路径会中断。因此,当您创建 venv
时,请在创建它的目录中使用它。 venv
s 的全部意义在于,如果你破坏了某些东西,你只需即时创建一个新的。最终,您需要编写自己的 shell 脚本来自动创建 venv
s。
- Something might be broken with my 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(可能不同 micro versions, check by running the executable in each directory with python --version
). The meaning of the path names is well explained in 4. Using Python on a Macintosh
为了避免混淆,我的 PATH
上只有最新的 Python 版本。通过激活正确的 venv
.
您还有 bin
到 Anaconda 的路径,检查这些路径以查看 Anaconda 使什么可执行。除此之外,您在 /Library/Apple/usr/bin
处拥有正常的 OS 内容,不应干扰与 Python 开发相关的任何内容。
最后,模块发现比 PATH
中的模块更动态。 The module search path sys.path
填充了执行脚本的路径,这意味着 directory\where_you_execute\python your_script.py
上的任何 module/package 都是可发现的(您可以在 运行 时检查它).
- Something might be broken trying to manage multiple Python versions on my computer
这就是事情变得复杂的地方。如果你使用不同的解释器、包版本等...最终你会想要一个 3rd 方工具来帮助管理所有这些,这将是 Anaconda, or Virtualenv or Poetry 或等等...但基本上所有这些都是做什么的正在管理 venv
s 添加功能和复杂性,了解如何手动创建和管理 venv
s 以更好地了解这些工具为您做什么很重要。
最后,PyCharmIDE本身在Java中实现。当您启动 IDE 时,它有自己的可执行文件,与 Python 解释器相关的东西很少会导致 IDE 在启动时崩溃。从好的方面来说,您知道罪魁祸首是您的 Python 解释器之一,即来自错误消息:
Python Version: 3.6.4 (3.6.4)
具体错误说明了一切(文件被移动,或者某些错误破坏了链接):
"Reason: image not found".
如果您无法启动 IDE 以从内部解决问题,请删除对有问题的解释器的任何引用
附带说明一下,如果您 运行 由于 PATH
上有多个解释器而遇到问题,请在 Windows 上使用 which python
command on bash, or the where python
命令。这将告诉您当您或某些应用程序在命令行上执行 python something
时,正在调用 PATH
上的哪个 Python 解释器。
我认为这个问题(或其他相关问题)没有足够的信息来完全诊断问题。这需要深入查看确切的 Anaconda configurations - 但 brew 用户也报告了同样的错误。
最有可能的情况是,当您启动 PyCharm 时,解释器列表会填充并调用 Anaconda。在升级到最新的 Python 版本后的某一时刻,现有环境之一变得不同步,因为它解析为 PATH 上以前的基础解释器(而不是硬编码到特定安装。)一定是出了什么问题通过需要一般更新的包间不兼容,某些内容被删除,或者只是缓存需要清除。