Как расширить python с C ++, используя boost от установки brew на Ma c? - PullRequest
0 голосов
/ 24 февраля 2020

Я установил буст на своей маме c (Каталина 10.15.3), используя brew. Все сшито до go нормально с установкой. Для установки я следовал инструкциям здесь: https://www.pyimagesearch.com/2015/04/27/installing-boost-and-boost-python-on-osx-with-homebrew/

Единственное отличие, я не смог включить флаг --with- python, так как он больше не является option.

Я пытаюсь следовать руководству по быстрому запуску здесь: https://en.wikibooks.org/wiki/Python_Programming/Extending_with_C%2B%2B

Я создал каталог со следующим путем: ~ / PythonExtensionTest, и он содержит два файла: hellomodule. cpp и setup.py.

Это следующие файлы:

hellomodule. cpp:

#include <iostream>

using namespace std;

void say_hello(const char* name) {
    cout << "Hello " <<  name << "!\n";
}

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
using namespace boost::python;

BOOST_PYTHON_MODULE(hello)
{
    def("say_hello", say_hello);
}

setup. py:

from distutils.core import setup
from distutils.extension import Extension

setup(name="PackageName",
    ext_modules=[
        Extension("hello", ["hellomodule.cpp"],
        libraries = ["boost_python"])
    ])

С терминала, в этом каталоге, я запускаю команду:

$ python3 setup.py build

Вывод на терминал :

выполняется сборка работает build_ext сборка 'hello' расширение g cc -Wno-unused-result -Wsign-сравнить -Wunreachable-код -fno-common -dynami c -DNDEBUG -g -fwrapv - O3 -Wall -arch x86_64 -g -I / Библиотека / Каркасы / Python .рамка / Версии / 3.8 / include / python3 .8 - c hellomodule. cpp -o build / temp.macosx-10.9 -x86_64-3.8 / ч ellomodule.o g ++ -bundle-не определено dynamic_lookup -arch x86_64 -g build / temp.macosx-10.9-x86_64-3.8 / hellomodule.o -lboost_ python -o build / lib.macosx-10.9-x86_64-3.8 / привет. cpython -38-darwin.so ld: библиотека не найдена для -lboost_python clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова) ошибка: сбой команды «g ++» с состоянием выхода 1

Я не уверен, где должна находиться эта библиотека (или как ее найти на моем компьютере), и я также не уверен, как включить ее в путь. Я посмотрел на что-нибудь похожее, но ничего не помогло.

Любой совет приветствуется.

...