Estoy ejecutando Precise Pangolin amd64. Instalé Python 3.3 desde ppa: fkrull / deadsnakes.
Ahora quiero usar esta nueva versión de Python en virtualenv. ¿Pero cómo puedo hacer esto? Obtuve el siguiente error:
$ virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Running virtualenv with interpreter /usr/bin/python3.3
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3
Also creating executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/site.py", line 73, in <module>
__boot()
File "/usr/local/lib/python2.7/site-packages/site.py", line 2, in __boot
import sys, imp, os, os.path
ImportError: No module named 'imp'
ERROR: The executable /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 is not functioning
ERROR: It thinks sys.prefix is '/home2/USERNAME/.virtualenvs' (should be '/home2/USERNAME/.virtualenvs/pywork3')
ERROR: virtualenv is not compatible with this system or executable
Si, en cambio, utilizo explícitamente python3.3
para llamar a virtualenv, obtengo este error:
$ python3.3 /usr/bin/virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 2, in <module>
import virtualenv
ImportError: No module named 'virtualenv'
Estoy atascado. ¡Cualquier ayuda es muy apreciada!
EDITAR: Siguiendo el consejo de @thefourtheye, purgué mi site-packages
directorio local (efectivamente solo borro site.py
). Ahora voy un paso más allá, pero virtualenv se queja de una falta easy_install
:
Error [Errno 2] No such file or directory:
'/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install' while executing command
/home2/USERNAME/.virt...rk3/bin/easy_install /usr/share/python-virtualenv/pip-1.1.tar.gz
python3-setuptools
Instalé el paquete , que instala la versión Py3 de easy_install.
EDIT2:
Aquí está la salida detallada, sin pasar explícitamente --distribute
y --no-site-packages
, como estos dos interruptores son el comportamiento predeterminado de mi virtualenv :
$ virtualenv --verbose -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Running virtualenv with interpreter /usr/bin/python3.3
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3
Symlinking Python bootstrap modules
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/config-3.3m
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/lib-dynload
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/os.py
Ignoring built-in bootstrap module: posix
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/posixpath.py
Cannot import bootstrap module: nt
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/ntpath.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/genericpath.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/fnmatch.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/locale.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/encodings
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/codecs.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/stat.py
Cannot import bootstrap module: UserDict
Cannot import bootstrap module: copy_reg
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/types.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/re.py
Cannot import bootstrap module: sre
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_parse.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_constants.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_compile.py
Ignoring built-in bootstrap module: zlib
Cannot import bootstrap module: _abcoll
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/warnings.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/linecache.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/abc.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/io.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/_weakrefset.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/copyreg.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/tempfile.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/random.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/__future__.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/collections
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/keyword.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/tarfile.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/shutil.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/struct.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/copy.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/base64.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/bisect.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/_dummy_thread.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/hashlib.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/heapq.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/hmac.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/reprlib.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/rlcompleter.py
Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/weakref.py
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/site-packages
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/site.py
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/orig-prefix.txt
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/no-global-site-packages.txt
Creating parent directories for /home2/USERNAME/.virtualenvs/pywork3/include
Symlinking /home2/USERNAME/.virtualenvs/pywork3/include/python3.3m
Creating /home2/USERNAME/.virtualenvs/pywork3/bin
New python executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3
Changed mode of /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 to 0o755
Also creating executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python
Changed mode of /home2/USERNAME/.virtualenvs/pywork3/bin/python to 0o755
Testing executable with /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 -c "
import sys
prefix = sys.prefix
if sys.version_info[0] == 3:
prefix = prefix.encode('utf8')
if hasattr(sys.stdout, 'detach'):
sys.stdout = sys.stdout.detach()
elif hasattr(sys.stdout, 'buffer'):
sys.stdout = sys.stdout.buffer
sys.stdout.write(prefix)
"
Got sys.prefix result: '/home2/USERNAME/.virtualenvs/pywork3'
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils/__init__.py
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils/distutils.cfg
Using existing distribute egg: /usr/share/python-virtualenv/distribute-0.6.24.tar.gz
Installing distribute..............................................................................................................................................................................................................................................................................................................................................................................................................done.
Installing existing pip-1.1.tar.gz distribution: /usr/share/python-virtualenv/pip-1.1.tar.gz
Installing pip...
Error [Errno 2] No such file or directory: '/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install' while executing command /home2/USERNAME/.virt...rk3/bin/easy_install /usr/share/python-virtualenv/pip-1.1.tar.gz
...Installing pip...done.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 2283, in <module>
main()
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 938, in main
never_download=options.never_download)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 1054, in create_environment
install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 643, in install_pip
filter_stdout=_filter_setup)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 976, in call_subprocess
cwd=cwd, env=env)
File "/usr/lib/python3.3/subprocess.py", line 818, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.3/subprocess.py", line 1416, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: '/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install'
distribute
)virtualenv --no-site-packages -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
:?--setuptools
, y el resultado es exactamente el mismo (incluida la instalación de distribuir).Respuestas:
Haga una copia de seguridad de los paquetes del sitio.
cp -r /usr/local/lib/python2.7/site-packages/ /tmp/site-packages
Truncar ese directorio
rm -rf /usr/local/lib/python2.7/site-packages/
Ahora intenta lo mismo
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Para instalar sin pip
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --no-pip
EDITAR: Parece que la versión de virtualenv (1.7.1.2) y python3.3 no son compatibles. Entonces, por favor intente esto
Desinstalar python-virtualenv usando
sudo apt-get remove python-virtualenv
wget http://peak.telecommunity.com/dist/ez_setup.py; sudo python ez_setup.py
Esto instalará la última instalación fácil.sudo easy_install pip
sudo pip install virtualenv
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
fuente
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --verbose
dpkg -i
. Parece trabajar ahora. ¡Muchas gracias!Python 3.3 tiene venv incorporado.
http://docs.python.org/3/library/venv.html#module-venv
Simplemente corre
Y luego para activarlo
Esta versión incorporada de virtualenv es mucho más flexible de lo que probablemente estás acostumbrado. Por ejemplo, puede extender EnvBuilder para que haga lo que quiera. Puede copiar un ejemplo de implementación de EnvBuilder desde el siguiente enlace y jugar con él: http://docs.python.org/3/library/venv.html#an-example-of-extending-envbuilder
Esa secuencia de comandos anterior probablemente hace la mayor parte de lo que esperamos obtener de virtualenv. Entonces, si solo necesita un virtualenv con easy_install y pip, debería estar listo.
Consulte las ediciones de @MarkOfSine a continuación para obtener una aclaración sobre cómo comenzar a correr si todavía está confundido.
Para agregar a lo anterior, y según los documentos:
por ejemplo, después de ejecutar:
pyvenv-3.3 /path/to/my_project/venv
puede ejecutar
distribute_setup.py
, lo que parece hacer varias cosas, pero esencialmente terminaeasy_install
en su./my_project/venv/bin
directorio.Esto se puede utilizar para instalar
pip
y similares.No dice de dónde debe llegar
distribute_setup.py
, así que lo descargué de:y usando el entorno activado:
corrió :
y
Que luego completó la configuración del entorno virtual más en línea con virtualenv en python 2.x
fuente
./venv/bin/easy_install pip
.Es más fácil de lo que parece:
realmente funciona :)
fuente
Estás haciendo esto demasiado complicado. Si está incluido
python3
, solo créalo con:Incluso puede crear un alias si lo desea
Dependiendo de la máquina, es posible que deba especificar el intérprete:
fuente
python3-venv
también es necesario, al menos en Ubuntu 14.04.python3.4-venv
.Los pasos que funcionaron para mí: en MAC OSX 10.9.5
Descargue e instale Python-3.4.3 manualmente .
Crea un virtualenv.
Nota:
virtualenv -p <path to python3> py3env
no funcionó:fuente
libssl-dev
yzlib1g-dev
para que Python se compile con _ssl.so zlib.sofuente