2014-02-11 4 views
3

Я не могу использовать pymc вместе с psycopg2. Следующий простой фрагмент из учебника:psycopg2, pymc, anano и DYLD_FALLBACK_LIBRARY_PATH

import pymc as pm 
with pm.Model() as model: 
    x = pm.Normal('x', mu=0., sd=1) 

приводит к следующей ошибке:

Exception: The environment variable 'DYLD_FALLBACK_LIBRARY_PATH' does not contain the '/Users/josh/anaconda/envs/py27/lib' path in its value. This will make Theano unable to compile c code. Update 'DYLD_FALLBACK_LIBRARY_PATH' to contain the said value, this will fix this error.

Я был в состоянии решить эту проблему, добавив:

export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/Users/josh/anaconda/envs/py27/lib 

в мой файл инициализации оболочки .bashrc. Однако, и это та часть, я не понимаю, что линия ломает psycopg2:

---> 50 from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID 
    51 
    52 from psycopg2._psycopg import Binary, Date, Time, Timestamp 

ImportError: dlopen(/Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: @loader_path/../../../libpq.5.dylib                         
    Referenced from: /Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/psycopg2/_psycopg.so 
    Reason: image not found 

Как я могу иметь psycopg2 и pymc (здесь theano) счастливо жить вместе?

Это на OS X с установкой Python 2.7.6 с средой Python, созданной с помощью conda.

ответ

7

Версия для разработки Theano не нуждается в изменениях в DYLD_FALLBACK_LIBRARY_PATH. Поэтому отмените изменение и обновите версию Theano. От:

http://www.deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions

Запуск одного из этих 2 команды в зависимости от ваших потребностей:

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git --install-option='--prefix=~/.local' 
pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git 

EDIT: Я удалил ссылку на ответ в другом месте и скопировал ответ здесь. Спасибо

+1

Ответы только на ссылку недовольны, потому что нет гарантии, что ссылка всегда будет доступна. SO предназначен как ресурс Q & A, а не справочный форум. Это означает, что речь идет не только о том, чтобы помочь человеку решить проблему; ответы должны быть самодостаточными, чтобы они были полезны будущим искателям. –

+0

Я понимаю это. Но поскольку пользователь задал один и тот же вопрос в двух местах, и я написал ответ, прежде чем разбирать его, я не хочу дублировать свою работу. Что мне делать в этом случае? Не отвечать? Я думаю, что это было бы хуже, чем ссылка на тот же самый ответ. Я согласен с тем, что ссылка в целом не надежна, но эта в google-группах более надежна, чем средний URL-адрес. Я все еще хотел бы узнать, что вы предлагаете мне сделать в этом случае. Спасибо за ваш комментарий. – nouiz

+0

Я бы предположил, что если вы ответите на SO, вы должны отправить полный ответ на SO. Если вы ссылаетесь на чужой ответ, дайте резюме. Если вы ссылаетесь на свой собственный ответ, вы можете просто скопировать его. Там нет вреда в двух местах - на самом деле, это более «отказоустойчиво», и если вы его написали, группы Google не владеют авторским правом. И, FWIW, ссылки только на ответы, как правило, получают немного оборотов, и часто вытягивают вниз только по этой причине. –

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