Problema de configuración de un virtualenv

Estoy intentando configurar un virtualenv en Ubuntu 10.04 con Python 2.6.5 pero tengo algunos problemas.

Después de haber instalado virtualenv y virtualenv wrapper con pip, ejecuto el comando: virtualenv mysite-env –verbose

Obtuve el siguiente error:

Creating mysite-env/lib/python2.6 Symlinking Python bootstrap modules Symlinking mysite-env/lib/python2.6/lib-dynload Symlinking mysite-env/lib/python2.6/config Symlinking mysite-env/lib/python2.6/os.py Ignoring built-in bootstrap module: posix Symlinking mysite-env/lib/python2.6/posixpath.py Cannot import bootstrap module: nt Symlinking mysite-env/lib/python2.6/ntpath.py Symlinking mysite-env/lib/python2.6/genericpath.py Symlinking mysite-env/lib/python2.6/fnmatch.py Symlinking mysite-env/lib/python2.6/locale.py Symlinking mysite-env/lib/python2.6/encodings Symlinking mysite-env/lib/python2.6/codecs.py Symlinking mysite-env/lib/python2.6/stat.py Symlinking mysite-env/lib/python2.6/UserDict.py Symlinking mysite-env/lib/python2.6/lib-dynload/readline.so Symlinking failed, copying to mysite-env/lib/python2.6/lib-dynload/readline.so Traceback (most recent call last): File "/usr/local/bin/virtualenv", line 9, in  load_entry_point('virtualenv==1.6.1', 'console_scripts', 'virtualenv')() File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 795, in main never_download=options.never_download) File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 886, in create_environment site_packages=site_packages, clear=clear)) File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1020, in install_python copy_required_modules(home_dir) File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 974, in copy_required_modules copyfile(filename, dst_filename) File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 414, in copyfile copyfileordir(src, dest) File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 391, in copyfileordir shutil.copy2(src, dest) File "/usr/lib/python2.6/shutil.py", line 99, in copy2 copyfile(src, dst) File "/usr/lib/python2.6/shutil.py", line 53, in copyfile fdst = open(dst, 'wb') IOError: [Errno 20] Not a directory: 'mysite-env/lib/python2.6/lib-dynload/readline.so' 

Si lo ejecuto de nuevo, obtengo lo siguiente:

 Directory mysite-env/lib/python2.6 already exists Symlinking Python bootstrap modules Ignoring built-in bootstrap module: posix Cannot import bootstrap module: nt Symlinking mysite-env/lib/python2.6/lib-dynload/readline.so Symlinking mysite-env/lib/python2.6/copy_reg.py Symlinking mysite-env/lib/python2.6/types.py Symlinking mysite-env/lib/python2.6/re.py Symlinking mysite-env/lib/python2.6/sre.py Symlinking mysite-env/lib/python2.6/sre_parse.py Symlinking mysite-env/lib/python2.6/sre_constants.py Symlinking mysite-env/lib/python2.6/sre_compile.py Ignoring built-in bootstrap module: zlib Symlinking mysite-env/lib/python2.6/warnings.py Symlinking mysite-env/lib/python2.6/linecache.py Symlinking mysite-env/lib/python2.6/_abcoll.py Symlinking mysite-env/lib/python2.6/abc.py Creating mysite-env/lib/python2.6/site-packages Writing mysite-env/lib/python2.6/site.py Writing mysite-env/lib/python2.6/orig-prefix.txt Creating parent directories for mysite-env/include Symlinking mysite-env/include/python2.6 Creating mysite-env/bin New python executable in mysite-env/bin/python Changed mode of mysite-env/bin/python to 0755 Testing executable with mysite-env/bin/python -c "import sys; print(sys.prefix)" ERROR: The executable mysite-env/bin/python is not functioning ERROR: It thinks sys.prefix is u'/usr' (should be '/vagrant/mysite-env') ERROR: virtualenv is not compatible with this system or executable 

Alguna idea de cómo solucionar este problema? ¡Gracias!

Parece que ha sido un poco desde que preguntaste esto. El controlador de archivos de Virtualbox para el directorio / vagrant no puede reconocer los enlaces simbólicos que virtualenv usa mucho.

Esto se puede demostrar mejor con un simple

 mybox:/vagrant$ ln -s ~/.bashrc ln: failed to create symbolic link ./.bashrc': Protocol error` 

Actualizar:

Debido a la incompatibilidad de vagrant con los enlaces simbólicos y virtualenv, mis cajas / instancias vagrant eran específicas de tareas / proyectos (solo 1 virtualenv). Así que en la carpeta del lado host / instancia vagrant mantendría un script corto para instalar python y virtualenv, luego hago

 pip install -r /vagrant/requirement 

Más documentación se puede encontrar aquí. https://docs.vagrantup.com/v2/provisioning/basic_usage.html

con el bash apropiado if verificaciones (¿existe Python, existe / home / vagrant / env existe), puede aprovisionar su buzón una vez y luego agregar una llamada para activar su instalación ~ / env para que cuando inicie sesión, su configuración ya esté lista ir.

Este error se produce porque el archivo virtualenv.py que está utilizando no es compatible con la versión de python que está utilizando. Para python2.7 necesita descargar los binarios del sitio virtualenv.org y luego comstackrlos usando

 python setup.py install 

después de la instalación, use el binario instalado (no el archivo virtualenv.py) para crear un entorno virtual mediante

 virtualenv --no-site-packages /env/ 

Este problema ya tiene varias respuestas, pero quiero compartir mi solución, en caso de que ayude a la siguiente persona.

Donde corro el comando importa. Estaba ejecutando el comando virtualenv env dentro de la carpeta / vagrant shared. Ese fue mi error. Cuando vuelvo a mi directorio HOME, luego ejecuto virtualenv env, todo funciona bien.

No he encontrado este problema en particular, pero personalmente he cambiado de usar virtualenv a pythonbrew . pythonbrew es una solución diferente al mismo problema; funciona más como rvm en la comunidad de Ruby: construye versiones completamente autónomas de Python, desde cero, bajo $HOME/.pythonbrew ; luego, proporciona funciones de shell que le permiten cambiar fácilmente de una a otra (editando la ruta para usted, etc.). No es tan liviano como virtualenv , pero tampoco se monta en el sistema Python, por lo que todo el problema del enlace simbólico desaparece. También puede instalar varias versiones de Python, incluso si no están instaladas en el sistema base.

Su kilometraje puede variar, por supuesto, pero pythonbrew ha estado funcionando bien para mí.