Вопрос по numpy, osx-lion, scipy, python – Numpy и Scipy для предустановленного Python 2.6.7 на Mac OS Lion

13

Есть ли способ установить numpy и scipy на Python 2.6.7, который поставляется с Mac OS Lion? Я знаю, что у Lion есть и Python 2.7. Но мне нужно придерживаться Python 2.6, потому что я использую модуль, который не работает на Python 2.7.

в случае, если вы используете Linux, просто сделайте символическую ссылку на то, какой у вас фортран-компилятор, и он должен выполнить эту работу. например sudo ln -s / usr / bin / gfortran44 / usr / bin / gfortran Yandong Liu

Ваш Ответ

3   ответа
24

Я сталкивался с подобными проблемами при установке SciPy на Mountain Lion.

OSX Mountain Lion 10.8

Python 2.7.3

пип 1.1

заваривать 0.9.2

GNU Fortran (GCC) 4.2.1

Некоторые из ошибок, которые я получал, включают:

Это:

pip install scipy

Получил эту ошибку:

Could not locate executable pgfortran

don't know how to compile Fortran code on platform 'posix'

building 'dfftpack' library

error: library dfftpack has Fortran sources but no Fortran compiler found

Что привело меня к поиску компилятора Фортрана:

Эта команда:

brew install gfortran

Который дал эту ошибку:

Error: Currently the gfortran compiler provided by this brew is only supports the following versions of XCode:

    - XCode 3.1.4 on OS X 10.5.x
    - XCode 3.2.2/3.2.3 -- 4.0 on OS X 10.6.x
    - XCode 4.1 or newer on OS X 10.7.x

The AppStore and Software Update can help upgrade your copy of XCode.
The latest version of XCode is also available from:

http://developer.apple.com/technologies/xcode.html

Что привело меня к сообщению в блоге:http://www.joewandy.com/, Я следовал этой рекомендации:

Эта команда:

brew edit gfortran

откроет файл, используя xcode. Я изменил этот файл ровно в двух местах:

Тезисы 2 строчки:

if MacOS.xcode_version >= '4.2' and MACOS_VERSION == 10.7
    ohai "Installing gfortran 4.2.4 for XCode 4.2 (build 5666)"

Изменился на:

if MacOS.xcode_version >= '4.2' and MACOS_VERSION >= 10.7
    ohai "Installing gfortran 4.2.4 for XCode 4.2 (build 5666) or higher"

другими словами:

Изменено== 10.7 в>= 10.7 а также ИзмененоXCode 4.2 (build 5666) вXCode 4.2 (build 5666) or higher

Тогда я сделал

brew install gfortran

снова. который был успешным с сообщением:

Downloading http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg

Already downloaded: /Library/Caches/Homebrew/gfortran-4.2.4-5666.3.pkg
==> Installing gfortran 4.2.4 for XCode 4.2 (build 5666) or higher
==> Caveats
Brews that require a Fortran compiler should not use:

depends_on 'gfortran'

The preferred method of declaring Fortran support is to use:

def install
    ...
    ENV.fortran
    ...
end

==> Summary

/usr/local/Cellar/gfortran/4.2.4-5666.3: 86 files, 72M, built in 2 seconds

Тогда я сделал:

pip install scipy

но это дало мне это:

#error "<vecLib/vecLib.h> is deprecated.  Please #include <Accelerate/Accelerate.h> and link to Accelerate.framework."

Тогда я нашел этот пост в блоге: Компиляция SciPy на Mountain Lion http://www.thisisthegreenroom.com/2012/compiling-scipy-on-mountain-lion/

который сказал использовать эту команду:

pip install -e git+https://github.com/scipy/scipy#egg=scipy-dev

Это заняло от 5 до 6 минут, чтобы завершить

Installed /Users/hernamesbarbara/src/scipy
Successfully installed scipy
Cleaning up...

после чего я мог сделать

python


Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> help(scipy)

    Help on package scipy:

NAME
    scipy

Успех!

Установленная версия SciPy:

full_version = '0.12.0.dev-14b1e07'
git_revision = '14b1e07602ff33a6e8250eb2bc7a6816677606a9'
release = False
short_version = '0.12.0'
version = '0.12.0.dev-14b1e07'
+1; Это сработало! Спасибо, что написали
2

Я думаю, вам не нужно устанавливать Brew и XCode, а также самостоятельно компилировать gfortran: я установил скомпилированную версию gfortran изhttp://hpc.sourceforge.net и все, кажется, работает. (Я на 10.7.5)

Хорошо скомпилированный двоичный файл будет работать, но я думаюbrew это просто круто
34

Лев приходит сeasy_install для каждой из его реализаций Python:/usr/bin/easy_install-2.7 за/usr/bin/python2.7и аналогично для 2.6 и 2.5.

Однако для scipy требуется компилятор Фортрана, а Lion не поставляется с одним из них. Выглядит так, как будто вы должны иметь компилятор Fortran перед установкой numpy, иначе scipy не может быть установлен позже.

Во-первых, вам нужны инструменты командной строки Xcode. (Apple часто меняет название этого пакета, и это может быть «Инструменты разработки Unix» или «Инструменты разработки CLI» и т. Д., В зависимости от версии Xcode.)

Они могут быть установлены самим Xcode. Если вы используете 4.3.x, после установки Xcode из App Store запустите его, перейдите в «Настройки», «Загрузки», «Компоненты» и нажмите кнопку «Установить» рядом с «Инструменты командной строки». Для разных версий или если вы хотите установить их без Xcode, страница Homebrew (см. Ниже) объясняет, как их получить, или вы можете посмотреть вокругСайт разработчика Apple.

Если у вас уже есть менеджер пакетов (Homebrew, MacPorts или Fink), используйте его. Если вы этого не сделаете, установитеHomebrew:

curl https://raw.github.com/gist/323731/25f99360c7de3f72027d8fd07cb369b1c8756ea6/install_homebrew.rb -o /tmp/install_homebrew.rb
ruby /tmp/install_homebrew.rb
rehash

Затем установите gfortran следующим образом:

brew install gfortran

Теперь вы готовы к установке numpy и scipy. Если вы предпочитаетезернышко для easy_install (если вы не знаете, вы, вероятно, предпочитаете pip), вы должны сначала установить его:

sudo easy_install-2.6 pip

Затем используйте его для установки пакетов:

sudo pip-2.6 install numpy

В зависимости от конкретной версии ОС и других деталей, у вас уже может быть встроенный numpy для 2.6, но этот numpy не имеет поддержки Fortran. Вы можете сказать это, потому чтоsudo pip-2.6 install numpy говоритRequirement already satisfied (use --upgrade to upgrade): numpy in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python, Решение состоит в том, чтобы сделать именно то, что говорится в сообщении об ошибке:

sudo pip-2.6 install --upgrade numpy

И наконец:

sudo pip-2.6 install scipy
@Nino: Apple поставляла несовершенные сборки Python с Tiger или Leopard несколько лет назад, но с Lion 2.6 и 2.7 все в порядке. Я просто взял чистую машину Lion, выполнил в точности шаги, которые я перечислил выше для Apple 2.6 и 2.7, и получил рабочий scipy на каждом. И на чистой машине Mountain Lion я сделал то же самое, и снова это сработало.
Вы должны установить NumPy с поддержкой Gfortran. Когда вы попытались, он сказал вам, что «требование уже выполнено (используйте --upgrade для обновления)». Вы использовали --upgrade для обновления? Если нет, то очевидно, что у вас все еще есть няшка, который поставляется с Lion 2.6, который не имеет поддержки gfortran.
В каком порядке вы делали установку? Из быстрого теста выглядит, что если вы установили numpy перед gfortran, вы не получите fortranobject.c / h, что означает, что при попытке собрать scipy он получит именно ту ошибку, о которой вы упоминали. Я отредактирую ответ, чтобы показать порядок, в надежде, что это ваша настоящая проблема.
Я думаю, что у вас остались вещи с вашей первой неудачной попытки. В частности, если вы установили numpy, не смогли установить scipy, то «brew install gfortran»; pip install numpy; pip install scipy & quot ;, который не приведет к повторной сборке numy (с работающей поддержкой fortran) и замене. Вы можете просто "удалить pip numpy" и попробуйте снова, но я не обещаю, что все исправлю.
К сожалению, самой доступной чистой тестовой коробкой Lion недавно стала чистая тестовая коробка Mountain Lion, поэтому я не уверен, что смогу воспроизвести что-либо до следующей недели. Но вы можете попробовать одну вещь (не потому, что это решит вашу проблему, а чтобы помочь в ее диагностике): запустите python2.6, затемimport numpy а такжеimport numpy.f2py и посмотреть, если вы получаете какие-либо ошибки.

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