获取'文件'尝试定义文件指针时,不是Cython中的类型标识符

时间:2016-05-26 08:05:12

标签: cython

我的目录结构

kents-air:Cython-Test kent$ tree
.
├── main.py
├── setup.py
└── test
    ├── test.c
    └── test.pyx

1 directory, 4 files

test.pyx

from libc.stdio cimport FILE

cdef class RandomTest:
    cdef File * reader
    cdef int number

    def __init__(self, number):
        self.number = number

    def print_random(self):
        print(self.number)

main.py

from .test import RandomTest

tester = RandomTest(5)
tester.print_random()

setup.py

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize(["test/*.pyx"]),
)

输出

pythkents-air:Cython-Test kent$ python3 setup.py build_ext
Compiling test/test.pyx because it changed.
[1/1] Cythonizing test/test.pyx

Error compiling Cython file:
------------------------------------------------------------
...
from libc.stdio cimport FILE

cdef class RandomTest:
    cdef File * reader
        ^
------------------------------------------------------------

test/test.pyx:4:9: 'File' is not a type identifier
Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    ext_modules = cythonize(["test/*.pyx"]),
  File "/usr/local/lib/python3.5/site-packages/Cython/Build/Dependencies.py", line 912, in cythonize
    cythonize_one(*args)
  File "/usr/local/lib/python3.5/site-packages/Cython/Build/Dependencies.py", line 1034, in cythonize_one
    raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: test/test.pyx

版本信息

kents-air:Cython-Test kent$ python3
Python 3.5.1 (default, Apr 18 2016, 11:46:32) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Cython==0.24

我已经检查过的链接:

Template Declaring FILE pointers in Cython

0 个答案:

没有答案