Найти правильный Python-фреймворк с помощью cmake

Я использую версию python для macports на компьютере Snow Leopard и использую cmake для создания кроссплатформенного расширения для него. Я ищу интерпретатор Python и библиотеки в системе, используя следующие команды в CMakeLists.txt

include(FindPythonInterp)
include(FindPythonLibs  )

Однако, несмотря на то, что cmake определил правильный интерпретатор в /opt/local/bin, он пытается установить связь с неверной платформой, а именно с системной платформой Python.

-- Found PythonInterp: /opt/local/bin/python2.6
-- Found PythonLibs: -framework Python

И это вызывает следующую ошибку во время выполнения

Fatal Python error: Interpreter not initialized (version mismatch?)

Как только я заменю -framework Python на /opt/local/Library/Frameworks/Python.framework/Python Кажется, все работает так, как ожидалось.

Как я могу сделать ссылку cmake на правильную структуру Python, найденную в

/opt/local/Library/Frameworks/Python.framework/Python

а не системный в

/System/Library/Frameworks/Python.framework/Python

?

7 голосов | спросил dzhelil 12 42009vEurope/Moscow11bEurope/MoscowThu, 12 Nov 2009 00:35:04 +0300 2009, 00:35:04

2 ответа


0

Добавление следующего в ~/.bash_profile

export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks

устраняет проблему хотя бы временно. По-видимому, это несоответствие между интерпретатором python и каркасом python, используемым cmake, является ошибкой, которую, надеюсь, следует исправить в новой версии.

ответил dzhelil 13 52009vEurope/Moscow11bEurope/MoscowFri, 13 Nov 2009 11:55:17 +0300 2009, 11:55:17
0

Я не очень хорошо знаком с CMake, но в версии gcc /ld для Apple вы можете указать флаг -F новый каркас пути поиска. Например, -F/opt/local/Library/Frameworks выполнит поиск в каталоге каркасов MacPorts. Если вы можете указать такой флаг с помощью CMake, это может решить вашу проблему.

ответил mipadi 12 42009vEurope/Moscow11bEurope/MoscowThu, 12 Nov 2009 22:26:43 +0300 2009, 22:26:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132