在优胜美地更新命令行工具后出现“未找到符号:_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 文本