¿Cómo puedo solucionar este problema creando un entorno virtualenv con un Python de comstackción personalizada?

Necesito ejecutar algún código en una máquina Linux con Python 2.3.4 preinstalado. No estoy en la lista de sudoers para esa máquina, así que incorporé Python 2.6.4 en (un subdirectorio en) mi directorio de inicio. Luego intenté usar virtualenv (por primera vez), pero obtuve:

$ Python-2.6.4/python virtualenv/virtualenv.py ENV New python executable in ENV/bin/python Could not find platform dependent libraries  Consider setting $PYTHONHOME to [:] 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  Consider setting $PYTHONHOME to [:] 'import site' failed; use -v for traceback Traceback (most recent call last): File "", line 67, in  ImportError: No module named md5 ---------------------------------------- ...Installing setuptools...done. Traceback (most recent call last): File "virtualenv/virtualenv.py", line 1488, in  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 

¿Debería establecer PYTHONHOME a algún valor? (Intencionalmente llamé a mi ENV “ENV” por falta de un nombre mejor).

Sin saber si puedo ignorar esos errores, intenté instalar nose (0.11.1) en mi 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  Consider setting $PYTHONHOME to [:] Traceback (most recent call last): File "setup.py", line 1, in  from nose import __version__ as VERSION File "/apps/users/dspitzer/nose-0.11.1/nose/__init__.py", line 1, in  from nose.core import collector, main, run, run_exit, runmodule File "/apps/users/dspitzer/nose-0.11.1/nose/core.py", line 3, in  from __future__ import generators ImportError: No module named __future__ 

¿Algún consejo?

¿Realmente has ejecutado “make install” en tu comstackción de Python personalizada? Normalmente querrás hacer algo como

 ./configure --prefix=/path/to/installdir (other options) make make install 

Nota El prefijo puede ser cualquier directorio para el que tenga permisos de escritura completos, por ejemplo, a menudo uso $ HOME / apps en entornos de alojamiento compartido.

Luego ejecute / path / to / installdir / bin / python, no el de su directorio de comstackción. Esto debería crear las variables correctas, y después de eso puede instalar virtualenv. Podría ser mejor instalar virtualenv usando su setup.py:

 cd virtualenv_source_dir /path/to/installdir/bin/python setup.py install 

Esto puede requerir instalar setuptools primero, usando el mismo método.

Entonces finalmente:

 # Just to be safe export PATH="/path/to/installdir/bin:$PATH" virtualenv ~/ENV ~/ENV/bin/pip install somepackage # (and such) 

Además de la sugerencia de Crast de asegurarse de que realmente instaló su Python comstackdo personalizado, también debe verificar que Python personalizado pueda encontrar sus bibliotecas. Esta es la sugerencia que está recibiendo con el mensaje sobre PYTHONHOME . Los errores de importación sugieren que necesita establecer en su .bashrc o configuración de shell apropiada export PYTHONHOME=/path/to/python_installation .

Además, cuando intenta decirle a virtualenv que use una versión no predeterminada de python, debe usar el indicador -p,--python , por ejemplo,

 virtualenv --python=/path/to/python_installation/bin/python myenv 

Vea también la pregunta relacionada, “Use una versión diferente de Python con virtualenv” .

Tuve el mismo error al intentar instalar en un directorio existente que ya tenía easy_install en lib / python2.6. Tuve que poner un enlace de lib64 / python2.6 a lib / python2.6.

No estoy diciendo que mi corrección sea la correcta, más bien, estoy señalando otra razón por la que podría obtener este error.

Ahora puede instalar Python fácilmente como un usuario no privilegiado utilizando Anaconda: http://continuum.io/downloads

Es similar a esta pregunta. Una vez que se obtiene la respuesta, se crea un nuevo entorno, por lo que no es necesario que use virtual-env y evite los errores ocasionales: Instalar Anaconda en un entorno virtual .

conda create -n myenv1 ipython scipy

No tengo suficiente reputación para agregar esto como un comentario en la respuesta de @Crast y esta pregunta tiene 4 años, pero esto puede ser útil para alguien. En Windows, tiene que ir a python.exe , pero parece que en Linux / OS X solo tiene que ir a la carpeta. Ejemplo:

Windows:

 virtualenv -p  venv 

Crea un entorno virtual en la subcarpeta “venv” en el directorio actual.