Comment puis-je contourner ce problème en créant un virtualenv de l'environnement avec une mesure de construire Python?
J'ai besoin d'exécuter du code sur une machine Linux avec Python 2.3.4
pré-installé. Je ne suis pas sur la liste des sudoers pour cette machine, donc je
construit Python 2.6.4 (un sous-répertoire dans) mon répertoire home. Puis J'Ai
tenté d'utiliser virtualenv (pour la première fois), mais j'ai reçu:
$ Python-2.6.4/python virtualenv/virtualenv.py ENV
New python executable in ENV/bin/python
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Installing setuptools.........
Complete output from command /apps/users/dspitzer/ENV/bin/python -c "#!python
\"\"\"Bootstrap setuptoo...
" /apps/users/dspitzer/virtualen...6.egg:
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Traceback (most recent call last):
File "<string>", line 67, in <module>
ImportError: No module named md5
----------------------------------------
...Installing setuptools...done.
Traceback (most recent call last):
File "virtualenv/virtualenv.py", line 1488, in <module>
main()
File "virtualenv/virtualenv.py", line 529, in main
use_distribute=options.use_distribute)
File "virtualenv/virtualenv.py", line 619, in create_environment
install_setuptools(py_executable, unzip=unzip_setuptools)
File "virtualenv/virtualenv.py", line 361, in install_setuptools
_install_req(py_executable, unzip)
File "virtualenv/virtualenv.py", line 337, in _install_req
cwd=cwd)
File "virtualenv/virtualenv.py", line 590, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /apps/users/dspitzer/ENV/bin/python -c "#!python
\"\"\"Bootstrap setuptoo...
" /apps/users/dspitzer/virtualen...6.egg failed with error code 1
Dois-je mettre PYTHONHOME à une certaine valeur? (J'ai volontairement nommé
mon ENV ENV" faute d'un meilleur nom.)
Ne sachant pas si je peut ignorer ces erreurs, j'ai essayé d'installer le nez
(0.11.1) dans mon ENV:
$ cd nose-0.11.1/
$ ls
AUTHORS doc/ lgpl.txt nose.egg-info/ selftest.py*
bin/ examples/ MANIFEST.in nosetests.1 setup.cfg
build/ functional_tests/ NEWS PKG-INFO setup.py
CHANGELOG install-rpm.sh* nose/ README.txt unit_tests/
$ ~/ENV/bin/python setup.py install
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
File "setup.py", line 1, in <module>
from nose import __version__ as VERSION
File "/apps/users/dspitzer/nose-0.11.1/nose/__init__.py", line 1, in <module>
from nose.core import collector, main, run, run_exit, runmodule
File "/apps/users/dspitzer/nose-0.11.1/nose/core.py", line 3, in <module>
from __future__ import generators
ImportError: No module named __future__
Des conseils?
J'ai déjà posté ceci sur ServerFault: serverfault.com/questions/113656, mais j'ai vu qu'il y a beaucoup plus de virtualenv questions ici, donc, j'ai décidé de poster ici.
OriginalL'auteur Daryl Spitzer | 2010-02-17
Vous devez vous connecter pour publier un commentaire.
Avez-vous vraiment exécuter "make install" sur votre custom python construire? Habituellement, vous aurez envie de faire quelque chose comme
Note Préfixe peut être n'importe quel répertoire vous avez amortissement total des autorisations, par exemple, j'ai très souvent recours à $HOME/apps sur hébergement mutualisé environnements.
Puis exécuter /chemin/vers/dir/bin/python, pas celle de votre répertoire de construction. Cela devrait créer le bon variables, et après que vous pouvez installer virtualenv. Peut-être préférable de l'installer à l'aide de son virtualenv setup.py:
Cela peut nécessiter l'installation de setuptools d'abord, en utilisant la même méthode.
Puis enfin:
OriginalL'auteur Crast
En plus de Crast la suggestion de s'assurer que vous avez bien installé votre custom Python compilé, vous devez également vérifier que la coutume Python, il est possible de trouver réellement de ses bibliothèques. C'est l'indice que vous obtenez avec le message sur
PYTHONHOME
. Les erreurs d'importation suggèrent que vous devez mettre dans votre.bashrc
ou d'environnement appropriée configurationexport PYTHONHOME=/path/to/python_installation
.En outre, lorsque vous essayez de dire virtualenv à utiliser par défaut la version de python, vous devez utiliser le
-p,--python
drapeau, par exemple,Voir aussi la question relative à la "Utiliser les différentes version de Python avec virtualenv".
make install
'ed correctement, vous ne devriez pas besoin de définir la PYTHONHOME environnement var. Ceci est principalement utilisé pour l'utilisation d'un seul binaire avec un complètement différent stdlib chemin. Normalement, cette valeur est auto-déterminée à partir du préfixe d'installation compilé dans votre interpréteur python. Cela peut aussi confondre virtualenv, ce qui a probablement manipule PYTHONHOME ou l'équivalent dans l'interpréteur.OriginalL'auteur gotgenes
J'ai eu le même message d'erreur lorsque vous essayez d'installer sur un répertoire existant qui avait déjà easy_install dans lib/python2.6. J'ai dû mettre un lien à partir de lib64/python2.6 lib/python2.6.
Je ne dis pas que ma solution est la bonne fixer, au contraire, je suis pointant vers une autre raison pour laquelle vous pouvez obtenir cette erreur.
OriginalL'auteur Mathieu Longtin
Maintenant, vous pouvez facilement installer Python comme un unpriviledged utilisateur à l'aide de l'Anaconda: http://continuum.io/downloads
Il est semblable à cette question. Une fois les réponses de détails, de faire un nouvel environnement, de sorte que vous n'avez pas besoin d'utiliser le virtual-env et éviter les occasionnels pièges: L'installation Anaconda dans un Environnement Virtuel.
conda create -n myenv1 ipython scipy
OriginalL'auteur Bradley Kreider
Je n'ai pas assez de rep à ajouter un commentaire sur @Crast la réponse de cette question est de 4 ans, mais cela peut être utile à quelqu'un. Dans Windows, vous avez du chemin à python.exe, mais il semble que dans Linux/OS X, vous venez de chemin d'accès au dossier. Exemple:
Windows:
Crée un environnement virtuel dans le sous-dossier "venv" dans le répertoire courant.
OriginalL'auteur Mike Davlantes