Подтвердить что ты не робот

Enthought Python, Sage или другие (в Unix-кластерах)

У меня есть доступ к кластеру Unix-машин, но у них нет необходимого мне программного обеспечения (numpy, scipy, matplotlib и т.д.), поэтому я должен установите их самостоятельно (у меня нет корневых разрешений, так что команды вроде apt-get или yast не работают).

В худшем случае мне придется скомпилировать их все из источника. Есть ли лучший способ для продолжения? Я слышал что-то о Enthought Python и Sage, но я не уверен, что это лучший способ пойти.

Любые предложения?

4b9b3361

Ответ 1

EPD (Enthought Python Distribution) отлично, но даже для ученых, , вы можете получить только 32-разрядную версию бесплатно. Если вы намереваетесь делать что-либо более интенсивное, это действительно не вариант.

Изменить: это с тех пор изменилось, и 64-разрядная версия свободно доступна для академического/образовательного использования.

С другой стороны, библиотека Intel MLK действительно имеет значение, и в ней есть множество отличных (например, последней версии майави) вещей, которые могут быть реальной болью для сборки из исходного кода. Кроме того, как говорили другие, вы можете просто развернуть его в своей домашней папке и запустить. Вам не нужен root-доступ.

EPD - отличный вариант, если вам больше не нужно использовать более 2 ГБ оперативной памяти, но вам придется заплатить, чтобы получить 64-битные сборки.

Python (x, y) отлично работает, если вы на окнах, но в противном случае удачи в поиске встроенных бинарных файлов Linux. Они больше или меньше больше не существуют... Репозиторий ubuntu, похоже, постоянно опускается, и я не знаю, где можно получить предварительно скомпилированный tarball для него. Это может измениться в ближайшем будущем, хотя... Надеюсь, это так, потому что это будет отличным вариантом для вас!

Честно говоря, если вам просто нужно numpy, scipy и matplotlib, их относительно легко построить из исходного кода (особенно, если вы можете уйти без scipy), и вы всегда можете просто создать собственный интерпретатор python, а затем использовать easy_install, чтобы избежать необходимости создавать их из источника. Это, конечно же, предполагает, что базовая среда сборки (gcc и т.д.) Уже установлена ​​на компьютере, который вы используете... Это то, что я сделал, когда был в вашей ситуации, во всяком случае...

Если вы идете по этому маршруту, лучше всего загрузить исходный код python и создать собственный интерпретатор python, который вы будете использовать для всего. Затем установите setuptools и easy_install. (В качестве альтернативы вы можете загрузить исходный код для numpy и т.д., А также создать и установить их для только что созданного интерпретатора python.)

Это показывает базовую идею создания основ (python, numpy, scipy, matplotlib, ipython) под каталогом "pythondist" в текущем рабочем каталоге.

#! /bin/sh

builddir=$(pwd)/pythondist
mkdir -p $builddir/source
cd $builddir/source

wget 'http://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
wget 'http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e'
tar -xvzf Python-2.6.5.tgz

# Build python
cd $builddir/source/Python-2.6.5/

# The --prefix argument is the key!
./configure --prefix=$builddir

# Be sure to speed things up with the -j option if you're 
# on a multicore machine (e.g. make -j 4 build for a quadcore)
make build 
make install

# Now install setuptools
cd $builddir/source
tar -xvzf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11/

# The next key is to call this with the python you just built!
$builddir/bin/python setup.py build
$builddir/bin/python setup.py install

# Now just install numpy, scipy, ipython, matplotlib, etc through easy_install
$builddir/bin/easy_install numpy
$builddir/bin/easy_install scipy
$builddir/bin/easy_install matplotlib
$builddir/bin/easy_install ipython

EDIT: незначительные опечатки в script. Если numpy или scipy неправильно установлены из яйца, см. Примечания по установке.

Этот script в основном предназначен для демонстрации создания независимого питона в вашем домашнем каталоге и предполагает, что система, на которой вы строите, имеет уже установленные зависимости, но она по крайней мере указывает вас в правильном направлении.

Если numpy или scipy неправильно строятся с помощью easy_install, загрузите исходные файлы и попробуйте построить их там, используя разные аргументы. (Numpy/Scipy setup.py автоопределение неправильного компилятора fortran является общей проблемой, по моему опыту) Например

cd $builddir/source
wget http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1.tar.gz/download
tar -xvzf numpy-1.4.1.tar.gz
cd numpy-1.4.1/
# If you don't specify an action (e.g. "build") this will enter an interactive
# mode to help diagnose problems... See the INSTALL.txt file, too!
$builddir/bin/python setup.py 

Например, в моей системе OpenSUSE 11.2 мне нужно указать "-fcompiler = gnu95" при создании numpy и scipy, так как у меня установлены g77 и gfortran. В противном случае все будет правильно построено.

Однако, в более старой системе RHEL 3, она отлично строится как -ла от easy_install. YMMV, конечно. Удачи!

Ответ 2

Если вы являетесь академиком, вы можете бесплатно использовать распространение Enthought . Он поставляется с собственным установщиком и обрабатывает установку для вас. Это определенно будет проще, чем установка matplotlib и т.д. С нуля самостоятельно. Нет требования для доступа администратора на установочном компьютере, потому что дистрибутив предоставляет свои собственные двоичные файлы Python. Я использовал его и нашел его простым и удобным.

Ответ 3

Я бы лично пошел за мудрецом по цене. Основная проблема, с которой вам придется столкнуться, - убедиться, что вы используете свою установку python для доступа к вашим библиотекам, независимо от используемого пакета python.

Ответ 4

python (x, y) - это бесплатный дистрибутив Python, подобный EPD (Enthought Python Distribution). Хотя оба включают основные стандартные библиотеки, есть некоторые отличия, поэтому вы должны выяснить, какой из них лучше подходит для ваших нужд. Одним из интересных аспектов EPD является то, что он недавно адаптировал библиотеку Intel MKL, поэтому могут быть преимущества производительности как для pythonxy, так и для стандартного установщика numpy.

Я не знаю, как эти дистрибутивы работают в блоке Unix без доступа root, это то, что вам просто нужно попробовать.

Sage, с другой стороны, не фокусируется на распределении (см. страница Википедии), поэтому вы не можете сравнить он.

Ответ 5

SageMath полностью свободен (совместим с GPL), а первая из трех основных целей проекта - быть самостоятельной - ограниченное распределение математического программного обеспечения с открытым исходным кодом, которое легко установить из источника (или из двоичного), несмотря на его большой размер. Вы должны иметь возможность настраивать Sage или что-либо еще в Sage (например, в веб-ноутбуке) без необходимости доступа root.

Ответ 6

Я использую Sage ежедневно. Я большой поклонник, но я бы не рекомендовал его, если вы не готовы к большому обновлению, настройке и настройке. Он еще не готов к прайм-тайм.

Если вы готовы приложить усилия, чтобы заставить его работать и поддерживать его работу, интерфейс веб-ноутбука потрясающий. Я не могу себе представить, что вы могли бы запустить его без доступа root.

Ответ 7

Вы можете использовать virtualenv для создания виртуального изолированного env с любым доступом, а затем вызвать easy_install для установки (и, при необходимости, компиляции) автоматически все необходимые вам библиотеки в вашем текущем каталоге без прав администратора.

Установка matplotlib с virtualenv

Единственное условие - запустить виртуальный env, учитывая, что вы ничего не можете установить. Вам нужно будет загрузить его в архив и вызвать virtualenv.py вручную.