Ваша проблема заключается в том, что вы должны установить Fortran компилятор для создания scipy
.
Кроме того, если у вас уже есть numpy
, который построен с поддержкой Fortran, вам может потребоваться его заменить. Некоторые из предустановленных версий Python от Apple имеют такую предустановленную сборку numpy
.
Самый простой способ получить Fortran - Homebrew. Как говорят the docs, вам нужно сначала установить 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
, поэтому, если у вас его нет, получите его первым. Apple, предварительно установленный Python, по крайней мере, 10,7 и 10,8, включает в себя easy_install
, но не pip
, поэтому самый простой способ сделать это:
sudo easy_install pip
Однако, вы можете рассмотреть возможность использования virtualenv
вместо глобальной установки (в этом случае вы также хотите удалить sudo
по следующим командам).
Теперь, когда вы получили gfortran
и pip
, все, что вам нужно сделать, это:
sudo pip install --upgrade numpy
sudo pip install scipy
Предостережения:
Приведенные выше инструкции предназначены для Apple, предварительно установленной версии (ы) Python. Если вы используете другую версию 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
install instructions. Но сначала убедитесь, что у вас его еще нет.
- Если вы используете
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 и НКА).
Сторонние бинарные установки, такие как 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.
Если вы хотите повлиять на приложения GUI (и LaunchAgents и т. Д.), По-видимому, больше не поддерживается способ, но устаревший QA1067, похоже, все еще работает в Lion. Это также то, что предлагают Homebrew FAQ и Python FAQ.
Если вы заботитесь только о сеансах командной строки (как Terminal.app, так и удаленного ssh), вместо этого вы можете просто выполнить стандартную Unix-версию редактирования соответствующего файла профиля. Какой файл профиля подходит, зависит от того, на что вы хотите повлиять. (Все пользователи или только один пользователь? Bash или любая оболочка? И так далее.) Если вы не знаете, какой из них вы хотите, вам действительно нужно провести некоторое исследование. Если вы не хотите учиться, просто делайте ~/.profile
, а затем не жалуйтесь, если это не то, что вы хотели.
В любом случае, вы должны убедиться, что соответствующий путь доходит до /usr/bin
в PATH. Так, например, можно добавить следующее ~/.profile
:
PATH=/usr/local/bin:$PATH
export PATH
(. Вы, конечно, необходимо либо создать новый терминал оболочку или источник сценарий, прежде чем он вступит в силу)
If вы используете homebrew
, brew doctor
расскажет, правильно ли вы это сделали.
Вам нужна последняя версия? Почему бы не использовать easy_install или pip? – BenDundee
Я попробовал pip, когда я устанавливал NumPy, и я смутился, я загрузил homebrew, и после этого Numpy работал. – Megan
Позвольте мне сказать: если вы планируете что-либо делать в Python, вы, вероятно, захотите узнать, как вывести трубку. – BenDundee