2017-05-27 8 views
0

I o wenige externen Bibliotheken mit cython importieren:externe Bibliotheken mit cython, führen in Import

cdef extern from "zmq.h" nogil: 
int zmq_msg_init (zmq_msg_t *msg) 
int zmq_msg_init_size (zmq_msg_t *msg, size_t size) 
int zmq_bind (zmq_msg_t *msg, void *data, 
    size_t size, zmq_free_fn *ffn, void *hint) 
... 

und die folgenden Fehlermeldung erhalten:

g++ -bundle -undefined dynamic_lookup -L/Users/taghawi/anaconda/envs/py3/lib -L/Users/taghawi/anaconda/envs/py3/lib -arch x86_64 build/temp.macosx-10.7-x86_64-3.6/processorgroup.o -L/Users/taghawi/anaconda/envs/py3/lib -lstdc++ -o /Users/taghawi/Dropbox/workspace/ABCEabsinth/processorgroup.cpython-36m-darwin.so 
Traceback (most recent call last): 
    File "start.py", line 1, in <module> 
    from processorgroup import ProcessorGroup 
ImportError: 
dlopen(/Users/taghawi/Dropbox/workspace/ABCEabsinth/processorgroup.cpython-36m-darwin.so, 2): Symbol not found: _zmq_bind 
    Referenced from: /Users/taghawi/Dropbox/workspace/ABCEabsinth/processorgroup.cpython-36m-darwin.so 
    Expected in: flat namespace 
in /Users/taghawi/Dropbox/workspace/ABCEabsinth/processorgroup.cpython-36m-darwin.so 
+0

Bitte beachten Sie, dass es laut Stackoverflow-Regeln absolut legitim ist, eigene Fragen zu beantworten. Bitte stimme mich nicht vor dem Lesen der Stackoverflow-Regeln ab! –

Antwort

1

Das Problem ist, dass, wenn man verwendet eine externe Bibliothek "zmq.h" in diesem Fall muss es in der Zusammenstellung angegeben werden:

setup(
    name = 'cagent', 
    ext_modules=cythonize([ 
Extension('processorgroup', ['processorgroup.pyx'], 
      language="c++", 
      libraries=["stdc++", "zmq"], 
      include_dirs=[numpy.get_include()], 
      ), 
      ]), 
cmdclass = {'build_ext': build_ext} 
) 

Bekanntmachung des "ZMQ" in ‚li braries = ["stdC++", "zmq"], '

+0

Bitte beachten Sie, dass es laut Stackoverflow-Regeln völlig legitim ist, eigene Fragen zu beantworten. –

Verwandte Themen