python linux pip virtualenv python-3.4

No se pudo crear un entorno virtual funcional para Python 3.4



linux pip (2)

Instalé Python 3.4.2 y Virtualenv 12.0.5 en mi Linux Mint 17.1

Entonces traté de crear: $ virtualenv venv

Y también usando --clear y / o -p /usr/bin/python3.4, obteniendo siempre los mensajes:

Using base prefix ''/usr'' New python executable in venv/bin/python3 Also creating executable in venv/bin/python ERROR: The executable venv/bin/python3 could not be run: [Errno 13] Permission denied

Otro intento fue: $ pyvenv-3.4 venv

No dio errores en la creación, pero en el archivo venv / bin el python3.4 es un enlace simbólico a /usr/local/bin/python3.4. Luego, cuando activo e instale cualquier lib usando pip o pip3, entonces trato de importarlo, obtengo el error: Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named ''anymoduledownloaded''

Siempre utilicé virtualenv en Python 2.X y nunca obtuve este tipo de errores. ¿Alguna idea sobre qué estoy haciendo mal?

¡¡Gracias!!

======= EDITADO =======

Este es el resultado de mis particiones (fdisk -l):

Device Boot Start End Blocks Id System /dev/sda1 2048 98707455 49352704 83 Linux /dev/sda2 303507456 3890644991 1793568768 5 Extended /dev/sda3 * 98707456 303507455 102400000 7 HPFS/NTFS/exFAT /dev/sda4 3890644992 3907028991 8192000 82 Linux swap / Solaris /dev/sda5 303509504 3890644991 1793567744 7 HPFS/NTFS/exFAT`

Y también mi fstab:

<file system> <mount point> <type> <options> <dump> <pass> -> was on /dev/sda1 during installation UUID=a38f9c6d-3cd9-4486-b896-acbc6182ec61 / ext4 errors=remount-ro 0 1 -> swap was on /dev/sda4 during installation UUID=efad7b53-79a8-4230-8226-9ca90c68ea9d none swap sw 0 0`


¿Es una partición compartida que has montado? ¿La partición compartida tiene un sistema de archivos diferente al que no se compartió? Si es así, entonces IMO, eso definitivamente causará un error ya que está haciendo y compilando binarios para python en un sistema de archivos, y por lo tanto no funcionará en otro sistema de archivos.

Como se menciona en esta respuesta , agregar a su / etc / fstab con una entrada con indicador exec puede hacer que funcione para usted, es decir, podría necesitar agregar otra entrada para el disco NTFS aquí para que sea automunt:

<file system> <mount point> <type> <options> <dump> <pass> -> was on /dev/sdaX during installation UUID=<uid_of_NTFS> / ntfs auto,user,exec,nodev,rw,errors=remount-ro 0 1


Tuve problemas con esto también, así que escribí un feo script de bash para ayudarme con esto. La única diferencia sobresaliente entre lo que haces y lo que hago está en la línea 133:

/path/to/python/bin/python3.4 /path/to/python/bin/pyvenv /path/to/venv

Es decir, nombrar explícitamente la instancia de python y la herramienta venv. Entonces

/path/to/venv/bin/pip install django # or whatever

Editar

Instalé Linux Mint en una VM para intentar crear un entorno virtual Python 3.4. Basándome en los mensajes de error que vi y en esta respuesta , aprendí que debo hacer lo siguiente para obtener una compilación completa de Python 3.4:

apt-get install build-essential libssl-dev openssl

Sin esto, mi versión de Python 3.4 no contiene pip. Tenga en cuenta que probablemente desee instalar readline y otros paquetes de desarrollo.

Consejo no solicitado

  1. No haga esto como root, cree un usuario dedicado a ejecutar su venv
  2. Crea una secuencia de comandos para crear tu entorno
  3. Revisa ese script en tu repositorio de código fuente

Eliminé mis binarios y vendedores python varias veces y luego recreé todo con este script para asegurarme de que mi script reproducía mi entorno y luego eliminaba la información de identificación y la guardaba en github para compartirla. Realmente debería usar una herramienta más formal para esto, como docker / puppet / chef.