nicht finden, also habe ich versucht, ein einfaches Skript auszuführen, wo ich C-Code in Cython 0.24 unter MacOS 10.11 in mein Python-Projekt integrieren .5 (El Capitán). Ich bearbeite den Code mit PyCharm mit Python Version 2.7.10. Meine setup.py sieht wie folgt ausfataler Fehler: Datei'mymodule.h 'nicht gefunden - Cython-Kompilierung kann Header
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
from Cython.Build import cythonize
import os
dirs = [os.getcwd()]
ext = [Extension("hello_world",
include_dirs=dirs,
sources=["mymodule.c","hello_world.pyx"],
depends=["mymodule.h"])]
setup(
name = "testing",
cmdclass={'build_ext' : build_ext},
ext_modules = cythonize(ext)
)
Er erzeugt die hello_world.c ganz gut und erzeugt auch ein Build-Verzeichnis und einen * .so Die * .pyx Datei enthält die folgende Definition-Datei, die offensichtlich die Definition übereinstimmt in mymodule.h
cdef extern from "mymodule.h":
cdef float MyFunction(float, float)
habe ich versucht, hier die Lösung vorgeschlagen: "'cc' failed with exit status 1" error when install python library
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
und die benutzerdefinierte Erweiterung s olution bereits in obigem Code kam von hier: Compiling Cython with C header files error
Ich versuchte auch, eine hier spezifische Lösung MacOS vorgeschlagen, aber das war nur Verzweiflung: https://github.com/wesm/feather/issues/61
export MACOSX_DEPLOYMENT_TARGET=10.11
Aber leider funktioniert es immer noch nicht. Ich bin mir sicher, dass Cython ordnungsgemäß funktioniert, da ich vorher einige Funktionen implementiert habe und sie einfach aufrufen konnte, wenn die Implementierung in Cython war. Es enthält nur tatsächlichen C-Code, wo dieses Problem für mich auftritt.
Ich hoffe jemand kann mir helfen, danke im voraus!
edit: bekomme ich folgende Fehlermeldungen
/Users/Me/.pyxbld/temp.macosx-10.11-intel-2.7/pyrex/hello_world.c:263:10: fatal error: 'mymodule.h' file not found
#include "mymodule.h"
^
1 error generated.
Traceback (most recent call last):
File "/Users/Me/Dropbox/Uni/MasterThesis/PythonProjects/cython_hello_world/main.py", line 3, in <module>
import hello_world
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/pyximport/pyximport.py", line 445, in load_module
language_level=self.language_level)
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/pyximport/pyximport.py", line 234, in load_module
exec("raise exc, None, tb", {'exc': exc, 'tb': tb})
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/pyximport/pyximport.py", line 216, in load_module
inplace=build_inplace, language_level=language_level)
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/pyximport/pyximport.py", line 192, in build_module
reload_support=pyxargs.reload_support)
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/pyximport/pyxbuild.py", line 102, in pyx_to_dll
dist.run_commands()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/Cython/Distutils/build_ext.py", line 164, in run
_build_ext.build_ext.run(self)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build_ext.py", line 337, in run
self.build_extensions()
File "/Users/Me/Library/Python/2.7/lib/python/site-packages/Cython/Distutils/build_ext.py", line 172, in build_extensions
self.build_extension(ext)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build_ext.py", line 496, in build_extension
depends=ext.depends)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/unixccompiler.py", line 122, in _compile
raise CompileError, msg
ImportError: Building module hello_world failed: ["CompileError: command 'cc' failed with exit status 1\n"]
Haben Sie die fehlende Datei 'mymodule.h' irgendwo? Es wird nicht von cython/setup.py generiert –
gibt es mymodule.c und mymodule.h, ja. Sie sind alle im Arbeitsverzeichnis, also dachte ich, es wäre ausreichend, os.getcwd() als include_dir zu verwenden. – meetaig
Ich würde 'ext_modules = ext' anstelle von' ext_modules = cythonize (ext) 'versuchen. Zumindest habe ich 'cythonize()' nicht so genannt. –