Краткое описание: с помощью libclang
автозаполнение кода не работает с питоном, который поставляется в комплекте с Sublime Text 3.питон libclang привязок на Windows, не инициализировать единицы перевода из возвышенного текста
Подробности: Небольшой проверяемый пример находится в репо на Github
В сущности, есть скрипт, который использует слегка измененный cindex.py
(совместимый с python 3 и clang 3.8) и строит модуль перевода из тестового исходного файла. Затем он повторяет его и пытается завершить.
Сценарий работает как ожидается при использовании Python 3.3.5 от Powershell.
При попадании в папку Пакеты на Sublime Text 3 появляется сообщение об ошибке. Версия Python, о которой сообщает Sublime Text 3, - 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.
Это происходит потому, что PTR к блоку tranlation возвращаемый libclang внутри cindex.py
является None
. Единственное, что для меня странно, это то, что это происходит только с python в комплекте с возвышенным текстом.
Это происходит и с другими людьми? Кто-нибудь знает, что может быть причиной или как его отладить?
Также не стесняйтесь пинговать меня, если вы не можете запустить приведенный здесь пример.
UPD: В вопросах тестового проекта мы выяснили, что это не ctypes, который связан с возвышенным текстом. Замена тех, что из возвышенного текста, на те, которые установлены в системе, вызывает ту же ошибку.
UPD2: Я урезанная файл cindex.py
в тестовом репозитории содержит только необходимый минимум кода, который необходим для запуска в том же номер, как описано в этом вопросе. Может быть, это поможет генерировать новые идеи о том, что может быть неправильным? Кроме того, я хочу прямо указать, что тот же код работает точно так, как ожидалось как на Linux, так и на OSX.