Я пытаюсь написать простой модуль на C ++ и импортировать его в Python. Тем не менее, когда я пытаюсь импортировать модуль с помощью import greet
Я получаю ImportError: dynamic module does not define module export function (PyInit_greet)
ошибка.
После прочтения еще один вопрос, связанный с этой проблемой (ВотЯ думал, что у меня могут быть проблемы с версией (так как я использую Python3.5). Но опять же, каждая команда, которую я использую для сборки и установки, я использую с Python3.5, так как у меня могут быть проблемы с версией? (python3.5 build setup.py
а также python3.5 setup.py install
).
Я пытаюсь создать модифицированную версию простого проекта, описанного в Документах Python (Вот), и все работает нормально, пока я не попытаюсь импортировать модуль.
Вот мой setup.py
файл:
from distutils.core import setup, Extension
greet_module = Extension('greet',
define_macros=[('MAJOR_VERSION','1'),
('MINOR_VERSION','0')],
include_dirs=['/usr/local/include'],
# clang: warning: libstdc++ is deprecated; move to
# libc++ with a minimum deployment target of OS X 10.9
sources=['greet.cpp'])
setup (name='Greet_Package',
version='1.0',
description='This is a demo package',
author='ralston',
author_email='null',
url='https://google.com',
long_description='''This is really just a demo package''',
ext_modules=[greet_module])
Может ли это быть связано с моим include_dirs
параметр? Мой Python3.5 на самом деле не установлен там, но я попытался поместить свой путь Python3.5 в include_dirs
но я получил ту же ошибку. Когда я строю setup.py
вот мой вывод:
running build
running build_ext
building 'greet' extension
creating build
creating build/temp.macosx-10.6-intel-3.5
/usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m -c greet.cpp -o build/temp.macosx-10.6-intel-3.5/greet.o
creating build/lib.macosx-10.6-intel-3.5
/usr/bin/clang++ -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-3.5/greet.o -L/usr/lib -o build/lib.macosx-10.6-intel-3.5/greet.cpython-35m-darwin.so
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
Любая помощь будет принята с благодарностью.
Задача ещё не решена.
Других решений пока нет …