2013-11-20 3 views
4

Я пытаюсь следовать this tutorial об упаковке кода на C++ для python для Windows. Я установил python.Downloaded последнюю версию boost (1_55). Сначала я запустил bootstrap.bat для сборки bjam.exe.Next, я сконфигурировал boost_1_55_0 \ tools \ build \ v2 \ user-config.jam для использования компилятора msvc10 и добавил путь к установке python. Теперь, на основе учебника:Не удается запустить bjam для компиляции учебника boost python

Теперь мы готовы ... Обязательно кд в ЛИЭС/Python/например/Учебник где учебник «hello.cpp» и «Jamroot» находится.

Наконец:

bjam

Попытка запустить bjam в этом каталоге дает мне: «bjam не распознается как внутренней или внешней командой» error.What я пропустил здесь? Должен ли пользователь-config.jam находиться в другом месте? Или bjam добавлен в системный путь?

UPDATE:

Ok.Thanks к @John мне пришлось добавить bjam к системе path.But сейчас, запустив его, hello_ext.lib создается в \ boost_1_55_0 \ ЛИЭС \ питон \ например \ учебник \ bin \ msvc-11.0 \ debug, но не DLL. Основываясь на учебнике, я должен получить DLL-файл для расширения. Теперь я не уверен, как ссылки на python с расширением. Но если я предполагаю, что он похож на C++, тогда он должен иметь связаны с hello_ext.lib.But при запуске:

питон hello.py

который содержит импортированный метод из расширения, время выполнения python crashes.Isn't нет всестороннего учебника по этому документообороту? Boost doc полностью засасывает это.

+1

Предположительно bjam нет в PATH. Используйте панель управления системой, чтобы добавить каталог, содержащий bjam, в ваш PATH. – john

+0

Не может помочь вам bjam, но мне обычно удается избежать bjam в unix для компиляции проектов boost-python. Я просто включил правильные пути заголовка и пути динамической библиотеки в make-файл. Я уверен, что что-то подобное можно сделать для окон и вашей среды IDE. Удачи – user2245644

+0

Не используйте bjam. Вместо этого я предлагаю использовать scons. –

ответ

3

Это работает для меня:

1.) разархивировать boost_1_55_0.zip

2.) Подготовка использовать подталкивание Библиотека Бинарники

Перейти в каталог boost_1_55_0 корневой и откройте командную строку и введите следующие команды:

Bootstrap 

3.) Найти пользователя config.jam:

Тип в командной строке:

ECHO %HOMEDRIVE%%HOMEPATH% 

4.) Если пользователь-config.jam в вашем HomeDrive каталоге, пожалуйста, измените его там, как следует:

ВНИМАНИЕ:

. jam language оценивает «пробел» как разделение аргументов!

# ------------------- 
# MSVC configuration. 
# ------------------- 

# Configure msvc (default version, searched for in standard locations and PATH). 
# using msvc ; 

# Configure specific msvc version (searched for in standard locations and PATH). 
using msvc : 10.0 : C:\\app\\tools\\MSVisualStudio2010\\VC\\bin\\cl.exe ; 

…. 

# --------------------- 
# Python configuration. 
# --------------------- 

# Configure specific Python version. 
# using python : 3.1 : /usr/bin/python3 : /usr/include/python3.1 : /usr/lib ; 

using python 
    : 2.5     # Version 
    : C:\\app\\tools\\Python25\\python.exe  # Python Path 
    : C:\\app\\tools\\Python25\\include   # include path 
    : C:\\app\\tools\\Python25\\libs   # lib path(s) 
    : <define>BOOST_ALL_NO_LIB=1 
    ; 

5.) Постройте библиотеки ПОСЛЕ конфигурации!

Перейти в каталог boost_1_55_0 корневой и откройте командную строку и введите следующие команды:

.\b2 

6.) Скопируйте пользовательский config.jam в \ boost_1_55_0 \ ЛИЭС \ питон \ пример \ учебник 7 .) Идите дальше \ boost_1_55_0 \ стадии \ Lib \

Rename libboost_python-VC100-мт-Г.Д.-1_55.lib в boost_python-VC100-мт-Gd-1_55.lib и скопировать его в

\boost_1_55_0\libs\python\example\tutorial 

8.) Теперь вы должны иметь все эти файлы в \ boost_1_55_0 \ ЛИЭС \ питон \ например \ каталог учебник

hello.cpp 
hello.py 
user-config.jam 
Jamroot 
boost_python-vc100-mt-gd-1_55.lib 
bjam.exe 

9.) Откройте командную строку в \ boost_1_55_0 \ Libs \ питон \ например \ учебник

и введите следующую команду:

bjam 

10.) После успешного строительства ..

Вы должны иметь этот файл в каталоге:

hello_ext.dll 

переименовать этот файл:

hello_ext.pyd 
Смежные вопросы