SciPy build/install Mac Osx

Я успешно построил/установил NumPy на моем mac os x для python 2.7.3. Теперь я хотел бы создать/установить scipy. Я загрузил его из концентратора git. Зашел в каталог. Ran python setup.py build, и он работал, пока не натолкнулся на эту ошибку:

customize Gnu95FCompiler
Could not locate executable gfortran
Could not locate executable f95
customize NAGFCompiler
customize AbsoftFCompiler
Could not locate executable f90
Could not locate executable f77
customize IBMFCompiler
Could not locate executable xlf90
Could not locate executable xlf
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize GnuFCompiler
Could not locate executable g77
customize G95FCompiler
Could not locate executable g95
customize PGroupFCompiler
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

Я думал, что у меня установлен Fortran для NumPy... разве нет? Как загрузить его?

Ответ 1

Ваша проблема в том, что вам нужно установить компилятор Fortran для сборки scipy.

Кроме того, если у вас уже есть numpy, который был создан с поддержкой Fortran, вам может потребоваться его заменить. В некоторых предустановленных версиях Python от Apple установлена ​​такая предварительная установка numpy.


Самый простой способ получить Fortran - Homebrew. Как документы говорят, вам нужно сначала установить Xcode и его средства командной строки. (Способ установки инструментов командной строки изменяется почти с каждой основной версией Xcode, поэтому см. Связанные документы для актуального объяснения.) Затем установите Homebrew. URL-адрес установки несколько раз менялся, поэтому см. Домашнюю страницу Homebrew или инструкции по установке (http://brew.sh/), но это будет примерно так:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Тогда:

brew install gcc

(Обратите внимание, что до некоторого времени в 2014 году gfortran был отдельным рецептом от gcc, поэтому команда была brew install gfortran. Но если вы попробуете это сейчас, вы получите сообщение об ошибке "GNU Fortran теперь предоставляется как часть GCC и может быть установлен с помощью: brew install gcc".)


Вы действительно хотите использовать pip для установки scipy, поэтому, если у вас этого нет, сначала получите его. Предварительно установленный Python от Apple, по крайней мере в 10.7 и 10.8, включает easy_install, но не pip, поэтому самый простой способ сделать это:

sudo easy_install pip

Однако вы можете захотеть использовать virtualenv вместо глобальной установки (в этом случае вы также хотите удалить sudo в следующих командах).

Теперь, когда у вас есть gfortran и pip, все, что вам нужно сделать, это следующее:

sudo pip install --upgrade numpy
sudo pip install scipy

Предостережения:

  • Инструкции, приведенные выше, предназначены для предустановленной версии (ов) для Python от Apple. Если вы используете другую версию Python, вам действительно стоит подумать об этом. Сохранение путей, установленных пакетов и т.д. В синхронизации - это кошмар. Исключение из этого - если вы хотите версию Python 3.x, и в этом случае установка его с python.org или Homebrew вполне разумна. Не будет никаких столкновений, потому что python, pip2.7 и т.д. Будут для Apple Python; python3, pip3.3 и т.д. для версии 3.x.

  • Если у вас уже есть pip, но боюсь, что он устарел, pip install --upgrade pip. (Помимо преимуществ безопасности и надежности, это может сэкономить вам много времени, сделав вас совместимым с двоичными колесами для некоторых научных стеков или других модулей.)

  • Для большинства установок, отличных от Apple Python (и, возможно, даже Apple в 10.9 или 10.10, я не проверял), вы не должны использовать easy_install для установки pip. Следуйте инструкциям pip установки. Но сначала убедитесь, что у вас его еще нет.

    • Если вы используете virtualenv/venv, ваши виртуальные среды уже будут включать pip.
    • Python 3.4 или новее может (и будет, если из установщика python.org) включить pip bootstrap. Если у вашего 3.4+ еще нет pip, вы можете захотеть python -m ensurepip установить его.
    • Некоторые сторонние установки, такие как Homebrew или ActiveState, включают pip.
  • Для Python 3.3 или более поздней версии вы можете использовать встроенный venv вместо virtualenv.

  • Если вы используете MacPorts, Fink, gentoo-alt и т.д., вы должны установить пакет scipy, который поставляется вместе с вашим менеджером пакетов, и он будет тянуть все, что ему нужно (возможно, даже включая восстановление Python и GCC).

  • Сторонние двоичные установки, такие как Enthought и ActiveState, могут уже включать scipy и все остальное, что вам нужно. Если нет, инструкции в основном такие же, как указано выше, но вам придется угадать, какие шаги следует пропустить или следовать, будь то sudo и т.д.


Если вы используете не-Apple-сборку Python 2.7 и хотите избежать проблем с PATH, вам нужно сделать две вещи:

Во-первых, ни в коем случае не устанавливайте пакеты Python, содержащие скрипты или двоичные файлы (включая pip) более чем на одном Python. Например, если вы установите ipython для Apple 2.7 и Homebrew 2.7, оба попытаются создать сценарии с именем /usr/local/bin/ipython и /usr/local/bin/ipython-2.7. Если вам повезет, одна установка завершится неудачей. В противном случае, они оба удастся, один в конечном итоге перепишет другой, и вы не сможете запустить перезаписанную версию.

Во-вторых, убедитесь, что путь к альтернативным скриптам и двоичным файлам Python находится перед Apple в PATH. В зависимости от того, какой альтернативный Python вы установили и какие инструкции вы следовали, это может быть:

  • /usr/local/bin
  • /Library/Frameworks/Python.framework/Versions/2.7/bin
  • /usr/local/share/python2.7/bin
  • /usr/local/Cellar/python/2.7.3/bin
  • что-то еще

Независимо от пути, вам нужно отредактировать переменную PATH.

Если вы хотите повлиять на приложения с графическим интерфейсом (и LaunchAgents и т.д.), по-видимому, больше не поддерживается способ, но устаревший QA1067, похоже, все еще работает в Lion. Это также то, что Homebrew FAQ и Python FAQ предлагают.

Если вы заботитесь только о сеансах командной строки (как Terminal.app, так и удаленной ssh), вместо этого вы можете просто выполнить стандартную версию Unix для редактирования соответствующего файла профиля. Какой файл профиля подходит, зависит от того, на что вы хотите повлиять. (Все пользователи или только один пользователь? bash или любая оболочка? И так далее.) Если вы не знаете, какой из них вы хотите, вам действительно нужно провести некоторое исследование. Если вы не хотите учиться, просто сделайте ~/.profile, а затем не жалуйтесь, если это не то, что вы хотели.

В любом случае, вы должны убедиться, что соответствующий путь предшествует /usr/bin в PATH. Так, например, вы можете добавить следующее в ~/.profile:

PATH=/usr/local/bin:$PATH
export PATH

(Разумеется, вам нужно либо создать новую оболочку терминала, либо указать источник script, прежде чем она вступит в силу.)

Если вы используете homebrew, brew doctor расскажет вам, правильно ли вы это сделали.

Ответ 2

Похоже, ваша фактическая проблема была просто прерывистым отказом загрузки от Sourceforge:

curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. Error: Download failed: downloads.sf.net/project/machomebrew/Bottles/…

Homebrew должен просто автоматически восстановить эту ошибку, если вы снова попробуете brew install gfortran. Итак, первое, что нужно попробовать.

Если это не сработает, см., если brew doctor обнаружит какие-либо проблемы, затем brew install -d gfortran, чтобы увидеть, где он хранит частично загруженный файл, чтобы вы могли удалить его вручную и повторите попытку.

Если все остальное не удается, вы можете заставить его не использовать бутылку с помощью --build-from-source. Конечно, создание из источника занимает намного больше времени, чем установка бинарной бутылки, но он должен давать тот же результат.

Ответ 3

По состоянию на 5/20/2014, если вы используете brew, Fortran устанавливается как часть gcc. Отдельного пакета Fortran не требуется. Вот что мне удалось установить numpy:

Ответ 4

Я не думаю, что эта проблема слишком сложна.

1) Установить pip

cd/Library/Frameworks/Python.framework/Versions/ ln -s 2.7 Ток

cd/usr/bin rm -f python ln -s/Library/Frameworks/Python.framework/Versions/Current/bin/python python

2) скачать яйцо из https://pypi.python.org/pypi/setuptools#files sudo sh setuptools-0.6c11-py2.7.egg

3) Просто загрузите и установите gfotran по этой ссылке: http://r.research.att.com/tools/

4) После этого вам нужно ввести: sudo pip install -U scipy sudo pip install -U numpy sudo pip install -U matplotlib

Надеюсь, у вас должно быть все, что вы хотите иметь.

Ответ 5

Я встретил ту же проблему, используя следующие шаги:
1. brew установить gfortran
2. pip install scipy

тогда это нормально.

Ответ 6

У меня установлен gfortran, а двоичный файл был gfortran-4.2. Поэтому каждый раз, когда я пытался установить SciPy, компилятор не мог найти, потому что он пытался использовать gfortran.

Я создал символическую ссылку gfortran-4.2 на gfortran.

Чтобы найти, где вы должны создать прогон symlink:

$ which gfortran-4.2
/usr/local/bin/gfortran-4.2

Затем добавьте символическую ссылку:

ln -s /usr/local/bin/gfortran-4.2 /usr/local/bin/gfortran

Ответ 7

У меня установлен домашний браузер, поэтому я собираюсь попробовать: $brew установить gfortran надеюсь, это работает

Ответ 8

Для OSX yosemite и, возможно, более старых выпусков osx вы можете загрузить и установить компилятор fortran перед запуском pip install scipy. Чтобы загрузить последний компилятор fortran, перейдите по следующей ссылке:

https://gcc.gnu.org/wiki/GFortranBinaries#MacOS

Ответ 9

Я думаю, что ваша версия Xcode и OSX важна. У меня были Xcode: 6.4 и Os X 10.11.1 и все еще получались одинаковые сообщения об ошибках (не удалось найти gfortran и т.д.). Я пробовал много вещей, включая тщательный ответ от @abarnert, но решение для меня было обновлено Xcode (до 7.1.1).