2015-07-23 3 views
2

У меня есть логика C++, которую я вызываю из Python. Я создал setup.py, используя distutils для сборки и установки. Логика C++ имеет файл cmake. Для создания C++ этот файл cmake необходимо включить в файл setup.py. Как я могу это сделать? Ниже приведен мой файл cmake для кода на C++.Как я могу включить cmake-файл при создании с помощью distutils python?

CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 

set(name "facerec") 
project(facerec_cpp_samples) 

#SET(OpenCV_DIR /path/to/your/opencv/installation) 

# packages 
find_package(OpenCV REQUIRED) # http://opencv.willowgarage.com 

add_executable(fisherfaces_app fisherfaces_app.cpp) 
target_link_libraries(fisherfaces_app opencv_contrib opencv_core opencv_imgproc opencv_highgui) 

Ниже приведен файл настроек.py.

from distutils.core import setup,Extension 

extension_mod=Extension("getGender",["getGender.cpp"]) 

setup(name="getGender",ext_modules=[extension_mod]) 

Я новичок в встроенном python и cmake. Пожалуйста, посоветуйте, как это сделать.

+0

Я понятия не имею, как 'setup.py' работает, но, попробуйте добавить системные команды перед вызовом' настройки) 'Смотрите (http://stackoverflow.com/questions/89228/call-an-external-command-in-python –

+1

Это не работает mchn, так как Opencv участвует в этом. Когда я пробовал системные команды, opencv отвергает их, бросая исключения собственности. Удалось снять его, используя только cmake. Удалено все setup.py. Благодаря! :) – mayooran

+0

Вы должны опубликовать его как ответ для других, чтобы узнать с этого момента :) –

ответ

-1

Поэтому, вместо того, чтобы испортить его с помощью cmake и setup.py, я включил заголовочный файл Python в cmake и создал общую библиотеку. Затем использовала эту общую библиотеку для вызова моих функций из Python. Мой CMake выглядит следующим образом,

CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 

set(name "facerec") 
project(facerec_cpp_samples) 

#SET(OpenCV_DIR /path/to/your/opencv/installation) 

# packages 
find_package(OpenCV REQUIRED) # http://opencv.willowgarage.com 

find_package(PythonLibs REQUIRED) 
include_directories(/usr/include/python2.7) 




add_library(getAge SHARED getAge.cpp) 
target_link_libraries(getAge opencv_contrib opencv_core opencv_imgproc opencv_highgui python2.7) 
+2

Это отвечает на вопрос, отличный от того, что вы поставили ... Удаление setup.py не полезно с точки зрения Python (например, установить в virtualenv с помощью 'pip') –

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

  • Нет связанных вопросов^_^