2013-03-05 4 views
1

Я пытаюсь обернуть некоторые функции C++ для использования в python. Например, вот функция из учебника Python для повышения.Boost Python Magic Number

// Copyright Joel de Guzman 2002-2004. Distributed under the Boost 
// Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt 
// or copy at http://www.boost.org/LICENSE_1_0.txt) 
// Hello World Example from the tutorial 
// [Joel de Guzman 10/9/2002] 

#include <boost/python/module.hpp> 
#include <boost/python/def.hpp> 

char const* greet() 
{ 
    return "hello, world"; 
} 

BOOST_PYTHON_MODULE(hello_ext) 
{ 
    using namespace boost::python; 
    def("greet", greet); 
} 

Когда я компилирую это в .pyc файл и попытаться импортировать его в питоне я получаю сообщение об ошибке:

ImportError: Bad magic number in C:\hello_ext.pyc

Я проверил магическое число, используя метод из другого форума, и это делает кажется неправильным. Я googled вокруг, и я не смог найти полезную информацию об этом сообщении об ошибке. Я подозреваю, что это плохая настройка в файле проекта visual studio или, возможно, что-то с тем, как я скомпилировал boost?

Я использую Visual Studio 2010 с пакетом обновления 1, Python 2.7.3 и повысить 1,53

I скомпилированный подталкивание со следующими параметрами.

b2 install toolset=msvc-10.0 variant=debug,release threading=multi link=shared runtime-link=shared --prefix="C:\boost" 
+0

Спасибо, что решил проблему. Я чувствую себя немного глупо сейчас :) – user2137072

+0

Если вы хотите добавить это в качестве ответа, я отметю его правильно. – user2137072

ответ

1

При компиляции повысить питона, вы должны иметь общую библиотеку в качестве результата (например, * .so на моей машине), а не .pyc файлы ..

Это страница о том, как для наращивания расширения python: http://wiki.python.org/moin/boost.python/BuildingExtensions

Смежные вопросы