gpt4 book ai didi

python - 我可以告诉 lldb 使用 PATH 中第一个以外的 Python 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:12 25 4
gpt4 key购买 nike

我正致力于在我的 lldb session 中添加一些 Python 脚本,但我发现它仅在 /usr/bin/python 是 PATH 上的第一个 Python 时才有效。如果我有另一个 Python 首先在 PATH 上找到,那么一旦 lldb 初始化其内部 Python 系统,它将得到如下所示的异常并终止。

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 548, in <module>
main()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 530, in main
known_paths = addusersitepackages(known_paths)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 266, in addusersitepackages
user_site = getusersitepackages()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 241, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 231, in getuserbase
USER_BASE = get_config_var('userbase')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 516, in get_config_var
return get_config_vars().get(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 449, in get_config_vars
import re
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 105, in <module>
import sre_compile
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sre_compile.py", line 14, in <module>
import sre_parse
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sre_parse.py", line 17, in <module>
from sre_constants import *
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sre_constants.py", line 18, in <module>
from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT

是否有一些 lldb 设置或命令可以让我单独离开我的 PATH 但仍然让 lldb 使用 /usr/bin/python

我也可以通过设置 PYTHONHOME=/usr 来解决这个问题,但由于我正在调试自定义 Python 构建和 Python 扩展,所以我真的不想改变环境。似乎应该有一些方法,比如 settings set internal-python/usr/bin/python 我可以把它放在我的 ~/.lldbinit 中来告诉 lldb 使用什么.

最佳答案

LLDB 实际上并不太关心 Python 二进制文件本身然而,它真正关心的是 Python.framework,因为这是调试器链接的对象

不支持从 OSX 附带的版本更改 Python 版本,因为我们使用 C API(直接和通过 SWIG),并假设某些类/函数/类型可用(您可以查看源代码以确切地看到假设会起作用)。由于我们也使用 SWIG,并不是 Python 所需的一切都在我们的直接控制之下(SWIG 在那里也有发言权),因此任何 Python 不是 OSX 附带的(我们测试过的)的场景都可能有效,或者可能不会

话虽如此,您也许可以“篡改”Python.framework 以将其指向其他 Python 版本。从那时起,您就靠自己了。

关于python - 我可以告诉 lldb 使用 PATH 中第一个以外的 Python 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com