Windows上的python libclang绑定无法从sublime文本初始化翻译单元
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Windows上的python libclang绑定无法从sublime文本初始化翻译单元,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2386字,纯文字阅读大概需要4分钟。
内容图文
![Windows上的python libclang绑定无法从sublime文本初始化翻译单元](/upload/InfoBanner/zyjiaocheng/963/f6da80b1f28543cfa6b3f73b58fe25b4.jpg)
简短说明:使用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 Files\Sublime Text 3\sublime_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, in load_module
File "<frozen importlib._bootstrap>", 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:\Users\igor\AppData\Roaming\Sublime Text 3\Packages\test_clang\script.py", line 21, in <module>
tu = TU.from_source(filename=filename)
File "C:\Users\igor\AppData\Roaming\Sublime Text 3\Packages\test_clang\clang\cindex38.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上的python libclang绑定无法从sublime文本初始化翻译单元全部内容,希望文章能够帮你解决Windows上的python libclang绑定无法从sublime文本初始化翻译单元所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。