Как я могу использовать NumPy без его установки?

Я получаю консольный доступ к компьютеру, на котором у меня нет прав root и sudo.

Версия Python 2.5.2 и numpy недоступна. Я не могу использовать python setup.py install --user, так как на машине нет доступных компиляторов.

Могу ли я каким-то образом использовать доступные скомпилированные пакеты https://edge.launchpad.net/~scipy/+archive/ppa/+packages без их установки? Я попытался импортировать модуль numpy напрямую, но он жалуется:

Python 2.5.2 (r252:60911, Jan  4 2009, 21:59:32)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/home/XXX/temp/python-numpy-1.2.1/numpy/__init__.py", line 121,
 in <module>
    raise ImportError(msg)
ImportError: Error importing numpy: you should not try to import numpy from
        its source directory; please exit the numpy source tree, and relaunch
        your python intepreter from there.
>>>

Спасибо!

Обновление: системный администратор не будет устанавливать никакого программного обеспечения на компьютере (это VPS, и я предполагаю, что у них есть стандартный образ для развертывания). Они сумасшедшие параноики, они даже не скажут мне, какой у них характер Unix, и даже у службы Apache номер версии запутан! Это вся информация, которую я получаю при входе в систему:

Linux server1 2.4.22 #4 SMP Wed Nov 5 17:44:16 CET 2003 i686 unknown

И для компиляции:

python setup.py install --home=~
[...]
RuntimeError: Broken toolchain: cannot link a simple C program

cat / proc / version

Linux version 2.6.32.25-grsec-dh (root@dl345.dinaserver.com) (gcc version 4.3.2
(Debian 4.3.2-1.1) ) #2 SMP Wed Nov 3 13:21:01 CET 2010

5 ответов

Решение

Если вы сможете разрешить все зависимости, вы сможете установить его в вашем $HOME, используя dpkg, dpkg не разрешает зависимости автоматически, поэтому вам, возможно, придется определить правильный порядок установки пакетов. Загрузите нужные вам файлы.deb и выполните следующую команду для каждого пакета:

$ dpkg -i --force-not-root --root=$HOME mypackagename.deb

Если вы затем добавите каталог с недавно установленным Numpy в ваш $ PYTHONPATH или в sys.path, Numpy может просто сработать.

Кроме того, вы можете извлечь нужные файлы из одного из других бинарных дистрибутивов Numpy (например, Sage).

Хотя Numpy довольно суетливо относится к тем версиям своих зависимостей, которые ему требуются, поэтому вам, вероятно, лучше всего загрузить пакеты для конкретной версии Linux, которую вы используете.

Наконец, попробуйте спросить своего администратора, установит ли он для вас Numpy. Вы будете удивлены, как часто простой запрос может решить все ваши проблемы, тем более что это всего лишь одна команда apt-get.

РЕДАКТИРОВАТЬ: В качестве альтернативы, если вы можете получить доступ к другому компьютеру с той же версией / архитектурой Ubuntu / Debian, вы можете загрузить архив с исходным кодом, скомпилировать с python setup.py build а затем просто скопировать все в directory_where_you_extracted_the_tarball/build/numpy/lib.OS-arch-PythonVersion (в моей системе это lib.linux-x86_64-2.6/) в каталог по вашему выбору на целевой машине. Затем просто добавьте этот каталог в ваш $PYTHONPATH, и все готово. Не забудьте скопировать содержимое, а не весь каталог (tar -jcf np.tar.bz2 /path/to/numpy/build/numpy/lib.OS-arch-PythonVersion/numpy затем получите tar.bz2 на удаленную машину и распакуйте его в каталог по вашему выбору).

Здесь есть некоторая документация по использованию setuptools: http://docs.python.org/install/index.html.

Создание Numpy вручную не для слабонервных, так что это может привести к множеству ударов головой и рвать волосы.

Я не на 100%, это будет работать, но Enthought имеет бесплатную версию EPD, в которую включены numpy и scipy, для которой может не потребоваться установка компилятора (поскольку, насколько я могу судить, он просто устанавливает двоичные файлы), и не не нужен root-доступ:

http://www.enthought.com/products/epd_free.php

Вы можете попробовать настроить среду virtualenv на похожей машине с похожей архитектурой. Затем установите virtualenv локально на компьютер VPS и попробуйте скопировать туда среду.

Вы можете использовать питона distutils (который является то, что python setup.py выполняется) установить в локальный каталог, который должен быть добавлен в ваш PYTHONPATH. НАПРИМЕР,

python setup.py install --prefix=~/local

который использует иерархию каталогов ~/local/lib/python2.x, (Или вы можете использовать --home=<dir> чтобы избежать python2.x часть)

в отличие отsetup.pyилиpip-основанные методы, установка Numpy через conda не требует доступа к каким-либо компиляторам.

  1. Установите какую-нибудь форму конды. Я предлагаю использовать мамбафорж :

            curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
    bash Mambaforge-$(uname)-$(uname -m).sh
    
  2. Использоватьconda/mamba/micromambaустановить Numpy изconda-forgeканал в новую среду conda под названиемmy_env:

            mamba create -n my_env -c conda-forge numpy
    
  3. Активируйте среду conda:

            mamba activate -n my_env
    
  4. Запустите Python с установленным numpy:

            python
    
Другие вопросы по тегам