Ошибка установки PyMC с pip

Я пытаюсь установить PyMC, используя pip install pymc. Я считаю, что эта команда должна установить PyMC 2.3.6.

PyMC имеет несколько зависимостей, которые я указал в своем PATH. Я использую OSX 10.11.2, и мой PATH включает Python 2.7.13, NumPy 1.12.0, Matplotlib 2.0.0, gcc и gfortran.

Python (включая pip) был установлен с помощью Homebrew. NumPy и Matplotlib были установлены с помощью pip. Для этой установки компилятор gfortran был загружен и установлен с GCC Wiki.

Выполнение pip install pymc дало много вывода, включая следующие строки.


Collecting pymc
  Using cached pymc-2.3.6.tar.gz
    Complete output from command python setup.py egg_info:
    running egg_info
    running build_src
    build_src
    building extension "pymc.flib" sources
    f2py options: ['skip:ppnd7']
    f2py:> build/src.macosx-10.11-x86_64-2.7/pymc/flibmodule.c
    creating build
    creating build/src.macosx-10.11-x86_64-2.7
    creating build/src.macosx-10.11-x86_64-2.7/pymc
    IOError: [Errno 2] No such file or directory: 'skip:ppnd7'. Skipping file "skip:ppnd7".
    updatevars:gradlike: attempt to change 'dimension(nx)' to 'dimension(na)'. Ignoring.
    updatevars:gradlike: attempt to change 'dimension(nx)' to 'dimension(nb)'. Ignoring.
    updatevars:gradlike: attempt to change 'dimension (nmu)' to 'dimension(nmu)'. Ignoring.
    updatevars:gradlike: attempt to change 'dimension (na)' to 'dimension(na)'. Ignoring.
    rmbadname1: Replacing "index" with "index_bn".
    Reading fortran codes...
        Reading file 'pymc/flib.f' (format:fix,strict)
    Line #34 in pymc/flib.f:"      PARAMETER (infinity = 1.7976931348623157d308)"
        get_parameters: got "unexpected EOF while parsing (<string>, line 0)" on ''

...

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/2f/cr97n5v93mn04c3qbqd7r3q40000gn/T/pip-build-6Zmgcz/pymc/setup.py", line 124, in <module>
    **(config_dict))
  File "/usr/local/lib/python2.7/site-packages/numpy/distutils/core.py", line 169, in setup
    return old_setup(**new_attr)

...

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/2f/cr97n5v93mn04c3qbqd7r3q40000gn/T/pip-build-6Zmgcz/pymc/

Как было предложено в этих двух потоках установки pip об ошибках egg_info [1, 2], я пробежал pip install —upgrade setuptools и pip install ez_setup. После того, как эти элементы были установлены, я столкнулся с теми же типами ошибок, что и выше.

Как отмечалось в других потоках установки пакетов, я готов использовать conda для установки PyMC, если не могу решить эти проблемы. Тем не менее, я хотел бы сначала исследовать эту проблему установки.

Может, кто-нибудь знает, в чем здесь моя проблема? Могу ли я предпринять какие-то шаги для успешной установки PyMC с помощью pip?


person curiousStudent    schedule 20.02.2017    source источник


Ответы (2)


У меня такая же проблема. Я не понимаю основной причины, но я исправил ее, понизив версию numpy до версии 1.10.1: pip install numpy==1.10.1

person Kevin Ferguson    schedule 21.02.2017
comment
Спасибо. Это не сразу сработало для меня. Я закончил установку с Anaconda. - person curiousStudent; 12.04.2017

Я также столкнулся с этой проблемой при попытке установить pymc из pip или исходного кода, но нашел решение, которое может оказаться полезным. Причиной, вызывающей проблему, может быть файл setup.py, в котором скрипт проверяет окружение компиляции. Я не очень внимательно читал код, но в функции build_ext() я думаю, коды сначала проверяют, не были ли уже установлены какие-то среды компиляции в ОС. Если они установлены, скрипт будет использовать их по умолчанию; если нет, используйте их где-нибудь еще (в комментарии сказано «из источников netlib»).

Я предполагаю, что проблема вызвана средами компиляции, которые уже были установлены в ОС, поэтому я изменяю файл setup.py, чтобы пропустить эту часть кода, и позволяю сценарию использовать исходный код netlib. Затем я запускаю sudo python setup.py install. Есть некоторые сообщения об ошибках и предупреждения, но в библиотеке Python появляется папка «pymc», и некоторые простые тестовые коды выполняются успешно.

person Jingjia Cao    schedule 08.07.2017