Windows上的python libclang绑定无法从sublime文本初始化翻译单
简短说明:使用libclang自动完成代码不适用于与Sublime Text 3捆绑在一起的
python.
细节:一个小的可验证的例子在Github的回购中 本质上,有一个脚本使用稍微改变的cindex.py(与python 3和clang 3.8兼容)并从测试源文件构建翻译单元.然后它重新解析它并试图完成. 该脚本在使用Powershell的Python 3.3.5时按预期工作. 当放入Sublime Text 3上的Packages文件夹时,会产生错误. Sublime Text 3报告的Python版本是3.3.6.错误: Traceback (most recent call last): File "C:Program FilesSublime Text 3sublime_plugin.py",line 78,in reload_plugin m = importlib.import_module(modulename) File "./python3.3/importlib/__init__.py",line 90,in import_module File "<frozen importlib._bootstrap>",line 1584,in _gcd_import File "<frozen importlib._bootstrap>",line 1565,in _find_and_load File "<frozen importlib._bootstrap>",line 1532,in _find_and_load_unlocked File "<frozen importlib._bootstrap>",line 584,in _check_name_wrapper File "<frozen importlib._bootstrap>",line 1022,in load_module File "<frozen importlib._bootstrap>",line 1003,line 560,in module_for_loader_wrapper File "<frozen importlib._bootstrap>",line 868,in _load_module File "<frozen importlib._bootstrap>",line 313,in _call_with_frames_removed File "C:UsersigorAppDataRoamingSublime Text 3Packagestest_clangscript.py",line 21,in <module> tu = TU.from_source(filename=filename) File "C:UsersigorAppDataRoamingSublime Text 3Packagestest_clangclangcindex38.py",line 2372,in from_source raise TranslationUnitLoadError("Error parsing translation unit.") clang.cindex38.TranslationUnitLoadError: Error parsing translation unit. 发生这种情况是因为cindex.py中libclang返回的ptr到tranlation单元是None.对我来说唯一奇怪的是它只发生在与sublime text 3捆绑在一起的python. 它也会发生在其他人身上吗?有谁知道可能是什么原因或如何调试它? 如果您无法运行此处提供的示例,也可以随意ping我. UPD:在测试项目的问题中,我们发现它不是捆绑在崇高文本中的ctypes.将sublime文本中的文本替换为系统中安装的文本会产生相同的错误. UPD2:我已经删除了测试存储库中的cindex.py文件,只包含了遇到问题所述相同问题所需的最少代码.也许这有助于产生关于可能出错的新想法?此外,我想明确指出,相同的代码在Linux和OSX上完全按预期工作. 解决方法
不幸的是,现在这个问题的答案是,它是由于Python 3.3中与Sublime Text 3捆绑在一起的错误.请参阅Sublime Text论坛上的
discussion.
这意味着,只要一个版本的sublime文本附带了一个更新的python,我们就不会看到这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – f#中的缩进问题(vs2010 beta1)
- Windows Server 2016 与 Linux 的网络性能对比测试
- 将sterr重定向到文件,但保留屏幕上的所有输出(as_is). [Win
- windows – 如何在bash脚本中访问/ cygdrive / c / ..
- microsoft-graph – Microsoft Graph Webhook缺少ClientSta
- 从用户空间冻结窗口的方法
- 如何在Windows上运行ubuntu容器?
- windows-server-2008 – 如何在不在域上时规避或更改屏幕超
- windows平台安装配置Gitblit
- 在Windows Server 2003上设置PHP cron作业