在优胜美地更新命令行工具后出现“未找到符号:_getentropy”错误

Posted

技术标签:

【中文标题】在优胜美地更新命令行工具后出现“未找到符号:_getentropy”错误【英文标题】:"Symbol not found: _getentropy" error after updating command line tools on yosemite 【发布时间】:2017-02-01 15:53:01 【问题描述】:

我最近创建了一个 python 应用程序,它通过 Bing 搜索并使用 WKhtmlTOPDF 将页面保存为 PDF,它是使用 Py2APP 构建的。

在我为 Xcode 更新命令行工具 (OS X 10.10) 之前,一切都运行良好,正如我希望的那样。

现在,每当我尝试运行该应用程序时,它都会立即崩溃并出现以下错误:

Time Awake Since Boot: 70 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000002, 0x0000000000000000

Dyld Error Message:
  Symbol not found: _getentropy
  Referenced from: /Users/USER/*/EnglishSearch.app/Contents/Frameworks/Python.framework/Versions/3.5/Python (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   dyld                            0x00007fff63035075 dyld_fatal_error + 1
1   dyld                            0x00007fff630382a8 dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 180
2   libdyld.dylib                   0x00007fff8c2983ba dyld_stub_binder + 282
3   ???                             0x00000001040af190 0 + 4362793360
4   org.python.python               0x000000010400d0b8 _Py_InitializeEx_Private + 375
5   org.pythonmac.unspecified.EnglishSearch 0x00000001000024ac 0x100000000 + 9388
6   org.pythonmac.unspecified.EnglishSearch 0x000000010000117a main + 650
7   org.pythonmac.unspecified.EnglishSearch 0x0000000100000be4 start + 52

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff8db0c232 kevent64 + 10
1   libdispatch.dylib               0x00007fff8dc5b26e _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib          0x00007fff8db0b94a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff8941a3dd start_wqthread + 13

Thread 3:
0   libsystem_kernel.dylib          0x00007fff8db0b94a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff8941a3dd start_wqthread + 13

Thread 4:
0   libsystem_kernel.dylib          0x00007fff8db0b94a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff8941a3dd start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00007fff6306d288  rbx: 0x0000000100200390  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x00007fff6306d3f0  rsi: 0x0000000000000000  rbp: 0x00007fff5fbfd290  rsp: 0x00007fff5fbfd278
   r8: 0x00007fff63057b4c   r9: 0x0000000000000000  r10: 0x00007fff6305afb6  r11: 0x00007fff6306d3f0
  r12: 0x0000000000000018  r13: 0x0000000000000000  r14: 0x00007fff6306d3f0  r15: 0x0000000104130188
  rip: 0x00007fff63035075  rfl: 0x0000000000000246  cr2: 0x000000010009c000

Logical CPU:     0
Error Code:      0x00000000
Trap Number:     3

我在网上搜索了一下,似乎是 CommandLineTools 的问题。我认为是这种情况,因为我尝试在我的另一台笔记本电脑上运行完全相同的应用程序,但它已经有一段时间没有更新了。

我的Xcode版本是2339,路径是/Library/Developer/CommandLineTools

有没有人知道如何解决这个错误?

谢谢:)

【问题讨论】:

【参考方案1】:

Mac 有一个它需要的内置 python 版本。命令行工具很可能会更新和更改此版本的 python。如果要开发应用程序,最好使用独立于操作系统的 python。尝试从外部源安装 python,例如使用anaconda。这将在您的系统上安装另一个仅供您使用的python,因此您可以对其进行更新并向其添加库,而不必担心命令行工具会改变它。

【讨论】:

以上是关于在优胜美地更新命令行工具后出现“未找到符号:_getentropy”错误的主要内容,如果未能解决你的问题,请参考以下文章

在 OSX 更新到优胜美地后,Applescript 无法“告诉”Spotify 播放

使用扫描仪采集图像到优胜美地

升级到优胜美地后无法在 tmux 中打开 sublime 文本

优胜美地安装后 Python configparser 错误

Applescript控制excel在优胜美地坏了?

优胜美地安装后 xcode 6 中的 iOS 模拟器在哪里?