【发布时间】:2016-12-14 22:18:11
【问题描述】:
我刚刚将安装的 clang 安装到我的 Anaconda Python 3 安装中,但我无法导入 clang python 绑定...
C:\Temp>python -m pip install clang --proxy="xxxxx"
Collecting clang
Downloading clang-3.8.tar.gz
Building wheels for collected packages: clang
Running setup.py bdist_wheel for clang ... done
Stored in directory: C:\xxxxxx
Successfully built clang
Installing collected packages: clang
Successfully installed clang-3.8
C:\Temp>python
>>> import clang.cindex
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda3\lib\site-packages\clang\cindex.py", line 515
raise ValueError,'{0} value {1} already loaded'.format(
^
SyntaxError: invalid syntax
然而,我能够自己成功导入 clang,虽然没有任何有用的...
>>> import clang
>>> clang.
clang.__all__ clang.__loader__ clang.__spec__ clang.__dir__( clang.__getattribute__( clang.__le__( clang.__reduce__( clang.__sizeof__(
clang.__cached__ clang.__name__ clang.__class__( clang.__eq__( clang.__gt__( clang.__lt__( clang.__reduce_ex__( clang.__str__(
clang.__doc__ clang.__package__ clang.__delattr__( clang.__format__( clang.__hash__( clang.__ne__( clang.__repr__( clang.__subclasshook__(
clang.__file__ clang.__path__ clang.__dict__ clang.__ge__( clang.__init__( clang.__new__( clang.__setattr__(
查看引发异常的源文件似乎表明它可能是 Python3 语法问题...
### Cursor Kinds ###
class BaseEnumeration(object):
"""
Common base class for named enumerations held in sync with Index.h values.
Subclasses must define their own _kinds and _name_map members, as:
_kinds = []
_name_map = None
These values hold the per-subclass instances and value-to-name mappings,
respectively.
"""
def __init__(self, value):
if value >= len(self.__class__._kinds):
self.__class__._kinds += [None] * (value - len(self.__class__._kinds) + 1)
if self.__class__._kinds[value] is not None:
raise ValueError,'{0} value {1} already loaded'.format( #<--Py2 Syntax str(self.__class__), value)
self.value = value
self.__class__._kinds[value] = self
self.__class__._name_map = None
查看 cindex.py 的其余部分似乎一致的是,尚未为 Python3 开发 libclang 绑定。这是准确的还是我的点子或其他东西在安装过程中混淆了?
【问题讨论】: