web-dev-qa-db-fra.com

Comment installer les packages python sans privilèges root?

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?

32
Skyler

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).

41
Colonel Panic

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:

  1. Téléchargez virtualenv depuis ici , placez-le sur votre cluster

  2. 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
    
  3. Ajoutez ce répertoire à votre PYTHONPATH:

    export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
    
  4. Créez un virtualenv:

    virtualenv venv
    
11
David Robinson

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

1
Brian Cain

Vous pouvez importer un module à partir d'un chemin arbitraire en appelant:

sys.path.append()

1
john graham