【问题标题】:Dyld Error Message when launching PyCharm启动 PyCharm 时出现 Dyld 错误消息
【发布时间】:2021-03-24 20:08:53
【问题描述】:

我已经尝试解决这个问题几个星期了,但仍然卡住了。我一直在研究它并慢慢获得更多信息但还没有解决它。

我在 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

Resolving PyCharm python error - dyld: Library not loaded

问题是每次启动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

【问题讨论】:

  • 你可以在终端中尝试:PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin" &amp;&amp; export PATH,然后打开pycharm吗?
  • 我希望你明白,无论解决方案是什么,你都必须学习如何创建一个 venv 以及如何更新 PATH。这相对容易,如果没有这两个步骤,您将无法解决您肯定会遇到的大多数问题。
  • @Ethan for the venv 使用PyCharm GUI 真的很容易,理解起来很快(也看看PyPI)。之后再花几分钟学习how to do it manually 是件好事。 The PATH 可能更复杂,了解如何设置操作系统环境变量(仅此而已,2 或 3 小时)。多个 Python 版本应该归结为前者。
  • 尝试使用 GUI 创建一个新的 venv(上一条评论中的第一个链接)。如果一切顺利,您将在几分钟内完成此操作。
  • @Ethan xkcd 1987

标签: python python-3.x path pycharm


【解决方案1】:
  1. 我的虚拟环境可能有问题

最简单的解决方案是使用 venv - 它是标准库,因此是虚拟环境的最佳基准。 (为了完整性,值得一提的是historically there have been a number of solutions。)作为一个例子creating a venv with the PyCharm GUI很简单,它从基础Python解释器创建一个新的解释器,可选地共享它的site-packages。 GUI 允许您与PyPI 交互以安装其他软件包。

最终,值得学习使用命令行see venv — Creation of virtual environments 做同样的事情。这归结为 3 个命令

  1. 创建 venv(因为您的 PATH 上有 Python)

    c:\&gt;python -m venv c:\path\to\myenv

  2. 激活 venv(这是特定于操作系统的,请参阅文档)

    &lt;venv&gt;/bin/activate

  3. 激活后使用 pip 安装任何你想要的库

    pip install library_name

在创建并激活 venv 后,它就可以在终端上使用(在 PyCharm 内部或外部),或者您可以在 PyCharm 中将它与 run configurations 一起使用。

现在,在您的情况下,您还使用 Anaconda,它为您管理包和环境。但重要的是要意识到 Anaconda 所做的大部分工作都是将上述步骤包装在它自己的 GUI 中,请参阅与 Finding your Anaconda Python interpreter path 的相似之处。

除此之外,还有一条硬性规定,即不应复制或移动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(可能不同 micro versions,请通过使用 python --version 在每个目录中运行可执行文件来检查)。路径名的含义在4. Using Python on a Macintosh中有很好的解释

为避免混淆,我的PATH 上只有最新的 Python 版本。通过激活正确的venv,透明地选择我需要的任何其他基本 Python 版本。

您还拥有 Anaconda 的 bin 路径,检查其中的内容以查看 Anaconda 使哪些可执行文件。除此之外,/Library/Apple/usr/bin 上还有正常的操作系统内容,它们不应该干扰与 Python 开发相关的任何内容。

最后,模块发现比PATH 中的内容更加动态。 The module search path sys.path 会填充您执行脚本的路径,这意味着 directory\where_you_execute\python your_script.py 上的任何模块/包都是可发现的(您可以在运行时检查它)。

  1. 尝试在我的计算机上管理多个 Python 版本时可能会出现问题

这里是复杂的地方。如果您使用不同的解释器、软件包版本等...最终您将需要一个帮助管理所有这些的第三方工具,例如 AnacondaVirtualenvPoetry 等。 .但本质上,所有这些所做的都是管理venvs,增加了功能和复杂性,学习如何手动创建和管理venvs 以更好地了解这些工具为您做什么是很重要的。

最后,PyCharm IDE 本身是用 Java 实现的。当您启动 IDE 时,它有自己的可执行文件,很少有与 Python 解释器相关的东西导致 IDE 在启动时崩溃的情况。从好的方面来说,您知道罪魁祸首是您的 Python 解释器之一,即来自错误消息:

Python Version: 3.6.4 (3.6.4)

具体的错误说明了一切(文件被移动,或者某些错误破坏了链接):

“原因:找不到图像”。

如果您无法启动 IDE 以从内部解决问题,请删除对有问题的解释器 by editing the configurations files 的任何引用。我不知道该怎么做,但如果你使用 Anaconda,应该可以从 IDE 外部启动 Anaconda GUI 以摆脱有问题的解释器。

附带说明,如果由于PATH 上有多个解释器而遇到问题,请在 bash 上使用 which python 命令,或在 Windows 上使用 where python 命令。这将告诉您,当您或某些应用程序在命令行上执行 python something 时,正在调用 PATH 上的哪个 Python 解释器。

我认为这个问题(或其他相关问题)没有足够的信息来全面诊断问题。这需要深入查看确切的 Anaconda configurations - 但 brew 用户也报告了相同的错误。

最可能的情况是,当您启动 PyCharm 时,会填充解释器列表并调用 Anaconda。在升级到最新的 Python 版本后的某个时刻,现有环境之一变得不同步,因为它解析为 PATH 上以前的基本解释器(而不是硬编码到特定安装。)一定是出了问题需要进行常规更新的包间不兼容、某些内容已删除或只是缓存需要清除。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多