python之为什么这个python脚本找不到libclang dll

tuyile006 阅读:27 2024-09-07 23:24:14 评论:0

我想开始使用 libclang python .我正在尝试获取示例代码 ( http://www.altdevblogaday.com/2014/03/05/implementing-a-code-generator-with-libclang/ ) 来处理 视窗 ,这是我尝试运行的代码的一部分:

#!/usr/bin/python 
# vim: set fileencoding=utf-8 
 
import sys 
import os 
import clang.cindex 
import itertools 
 
... 
 
print("Setting clang path") 
# I tried multiple variations. Libclang is correctly installed in the specified location. 
#clang.cindex.Config.set_library_path('C:/Program Files (x86)/LLVM/bin') 
#clang.cindex.Config.set_library_path('C:/Program Files (x86)/LLVM/bin/libclang.dll') 
 
# I also tried moving the dll into the Python installation folder. 
clang.cindex.Config.set_library_file('C:/Python27/DLLs/libclang.dll') 
print("Clang path set") 
 
index = clang.cindex.Index.create() 
 
... 

我剥离了代码的所有其他部分,但如果它们相关,我可以发布它们。线
index = clang.cindex.Index.create() 

抛出以下错误:
Setting clang path 
Clang path set 
Traceback (most recent call last): 
  File "D:\libclangtest\boost_python_gen.py", line 60, in <module> 
    index = clang.cindex.Index.create() 
  File "D:\libclangtest\clang\cindex.py", line 2095, in create 
    return Index(conf.lib.clang_createIndex(excludeDecls, 0)) 
  File "D:\libclangtest\clang\cindex.py", line 141, in __get__ 
    value = self.wrapped(instance) 
  File "D:\libclangtest\clang\cindex.py", line 3392, in lib 
    lib = self.get_cindex_library() 
  File "D:\libclangtest\clang\cindex.py", line 3423, in get_cindex_library 
    raise LibclangError(msg) 
clang.cindex.LibclangError: [Error 193] %1 is not a valid Win32 application. To provide a path to libclang use Config.set_library_path() or Config.set_library_file(). 

这是什么原因?我是否设置了 dll 的路径错误?我尝试了多种方法,使用前斜杠和反斜杠,我还尝试将 dll 移出程序文件以使路径不包含空格,但没有任何效果。

我是 libclang 和 Python 的完全初学者,如果我问一些琐碎的事情,请sry。

请您参考如下方法:

@SK-logic 评论说我应该检查 Python 和 libclang 是否都是 32 位或 64 位 . Libclang 是 32bit 的,但是我找不到检查我的 Python 安装是 32 还是 64 的方法,所以我重新安装了 32bit 版本,现在它可以工作了。所以问题可能是我有 64 位版本的 Python。


标签:Python
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号