J'utilise numpy
/scipy
/pynest
pour faire des recherches informatiques sur Mac OS X. Pour les performances, nous louons un cluster de 400 nœuds (avec Linux) à notre université afin que les tâches puissent être effectuées en parallèle. Le problème est que nous ne sommes PAS autorisés à installer des packages supplémentaires sur le cluster (pas de Sudo
ni aucun outil d'installation), ils ne fournissent que le brut python lui-même).
Comment puis-je exécuter mes scripts sur le cluster? Existe-t-il un moyen d'intégrer les modules (numpy et scipy ont également des binaires compilés je pense) afin qu'ils puissent être interprétés et exécutés sans installer de packages?
Vous n'avez pas besoin des privilèges root pour installer des packages dans votre répertoire personnel . Vous pouvez le faire avec une commande telle que
pip install --user numpy
ou de la source
python setup.py install --user
Voir https://stackoverflow.com/a/7143496/284795
La première alternative est beaucoup plus pratique, donc si le serveur n'a pas pip
ou easy_install
, vous devez demander poliment aux administrateurs de l'ajouter, en leur expliquant l'avantage (ils ne seront plus gênés par les demandes de packages individuels).
Vous pouvez créer un environnement virtuel via le package virtualenv .
Cela crée un dossier (disons venv
) avec une nouvelle copie de l'exécutable Python et un nouveau site-packages
répertoire, dans lequel vous pouvez "installer" n'importe quel nombre de packages sans avoir besoin d'aucun accès administratif. Ainsi, l'activation de l'environnement via source venv/bin/activate
donnera Python un environnement équivalent à l'installation de ces packages.].
Je sais que cela fonctionne pour les clusters SGE, bien que la façon dont l'environnement virtuel soit activé puisse dépendre de la configuration de votre cluster.
Vous pouvez essayer d'installer virtualenv
sur votre cluster dans votre propre répertoire de packages de site en procédant comme suit:
Téléchargez virtualenv depuis ici , placez-le sur votre cluster
Installez-le à l'aide de setup.py
vers un répertoire local spécifique pour servir de packages de site:
python setup.py build
python setup.py install --install-base /path/to/local-site-packages
Ajoutez ce répertoire à votre PYTHONPATH:
export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
Créez un virtualenv:
virtualenv venv
La distribution Python Anaconda résout la plupart des problèmes abordés dans ces questions. Anaconda ne nécessite pas d’administrateur ni d’utilisateur root et peut s’installer dans votre répertoire personnel. Anaconda est livré avec la plupart des packages en question (scipy, numpy, sklearn, etc ...) ainsi que le programme d'installation de conda pour installer des packages supplémentaires si des packages supplémentaires sont nécessaires.
Il peut être téléchargé à partir de https://www.continuum.io/downloads
Vous pouvez importer un module à partir d'un chemin arbitraire en appelant:
sys.path.append()