2015-05-05 4 views
1

Я пробовал безуспешно, чтобы запустить scip с помощью python. Я использую Yosemite (10.10.3), python 2.7 и укомплектован оптимизационным дизайном (http://scip.zib.de/download.php?fname=scipoptsuite-3.1.1.tgz) с make.Импорт scip в python

Я могу начать сканирование после установки через терминал.

sages-MBP:~ sage$ scip SCIP version 3.1.1 [precision: 8 byte] [memory: block] >[mode:optimized][LP solver: SoPlex 2.0.1] [GitHash: bade511] 

Но когда я пытаюсь использовать import scip в питона появляется сообщение

No module named scip 

появляется то же сообщение об ошибке для from zibopt import scip

Если я печатаю путь системы с print sys.path в питона, то папка scipoptsuite-3.1.1/scip-3.1.1/bin включена, где находится файл scip-3.1.1.darwin.x86_64.gnu.opt.spx. Возможно ли, что причиной сообщения об ошибке является то, что я не связал правильно необходимые библиотеки?

Или какие папки должны быть включены в pythonpath, чтобы заставить работать scip?

Надеюсь, кто-то может мне помочь!

+0

Файл 'СКИП-3.1.1.darwin.x86_64.gnu.opt.spx' это не то, что вам нужно, оно будет называться либо 'scip.py', либо' scip.so' (или, возможно, 'scip-stuff-other-stuff.so', но обычно не для 2.x). В любом каталоге есть _that_ файл, который должен находиться на вашем 'sys.path'. – abarnert

+0

(Если 'scip' фактически устанавливает специальный загрузчик модуля для файлов' .spx', но я сомневаюсь, что это так.) – abarnert

+0

Фактическая папка 'scip.py' должна быть либо в' sys.path', либо внутри каталога где находится ваш файл python. Даже если 'scip.py' был пустым, вы не получили бы ошибку, указав, что модуль не находится ни в одном из мест, где он должен быть. – Andriko13

ответ

0

Вам необходимо установить интерфейс python, который поставляется с SCIP. Перейдите к scip/interfaces/python/ и прочитайте инструкцию в README и INSTALL. Этот интерфейс использует Cython для связи с C-кодом SCIP.

make будет устанавливать только собственные бинарные файлы/библиотеки Linux или Mac.

переменной среды DYLD_LIBRARY_PATH должен быть установлен, чтобы содержать lib/ каталог установки SCIPoptSuite (см замечание @ саша)

+0

Я следовал инструкциям 'INSTALL', но теперь у меня появляется ошибка библиотеки:' E ImportError: dlopen (/ System/Library/anaconda/lib/python2.7/site-packages/pyscipopt/scip.so, 2): библиотека не загружена: lib/libscipopt-3.1.1.darwin.x86_64.gnu.opt.so E Ссылка на : /System/Library/anaconda/lib/python2.7/site-packages/pyscipopt/scip.поэтому E Причина: изображение не найдено' Я использовал 'python setup.py install' и указал пути при появлении запроса во время установки:' /scip-opt-path/scipoptsuite-3.1.1/lib/libscipopt-3.1. 1.darwin.x86_64.gnu.opt.so''/scip-opt-path/scipoptsuite-3.1.1/scip-3.1.1/src' –

+0

Возможно, вам придется обновить «' PYTHON_PATH''' до точки на '' 'pyscipopt/scip.so'''. Я никогда не видел код ошибки '' 'image not found''', хотя, поэтому я не уверен, как это исправить. – mattmilten

+1

Обновление 'PYTHON_PATH' не помогло. Но после добавления 'export DYLD_LIBRARY_PATH =/path-to-scip-opt/scipoptsuite-3.1.1/lib /' в мой bash я могу импортировать scip в python. Я знаю, что 'export DYLD_LIBRARY_PATH' не является рекомендуемой процедурой, но он работает. –