2011-02-15 17 views
21

Mi servidor tiene Python2.5 Quiero saltar al más nuevo de Python (2.7.x en mi caso). Recopilé python de la fuente, descargué el último virtualenv (1.5.1).afirmar el error al instalar virtualenv con diferente python

Ahora básicamente lo que estoy tratando de hacer:

./packages/virtualenv/virtualenv.py --python=packages/Python-2.7/python env/ 

Typing:

./packages/virtualenv/virtualenv.py 

Proporciona:

1.5.1 

al escribir:

packages/Python-2.7/python 

Proporciona:

Python 2.7 (r27:82500, Nov 21 2010, 23:19:15) 
[GCC 4.3.2] on linux2 
(cut help mesage) 
>>> 

Sin embargo runing resultados virutalenv en:

AssertionError: Nombre del archivo /packages/Python-2.7/Lib/os.py no se inicia con cualquiera de estos prefijos: [ '/ usr/local ']

Sea lo que sea y lo que sea o no estoy haciendo mal.

P.S. Al construir env + python basé en la pregunta: How do I work around this problem creating a virtualenv environment with a custom-build Python?

Respuesta

45

Después de leer y jugar con this.

Encontré que este error podría estar relacionado con la falta de --prefix al ejecutar ./configure para python. Así que me he encontrado ./configure --prefix=/Path/To/Where/I/Want/Python/After/Compilation/ (en mi caso $HOME/packages/Python-2.7), entonces yo haya escrito make, entonces make install (sin utilizar sudo - por lo pitón pusieron a salvo en donde me dijeron que fuera tan usuario actual no raíz). Después de esa iniciación virtualenv no se colgó con AssertionError y todo funcionó como un amuleto.

Espero que esta pregunta respondida por el autor eventualmente ayude a alguien. :)

+2

"Espero que esta pregunta respondida por el autor eventualmente ayude a alguien". Ciertamente lo hizo. Gracias. –

+0

Tengo este problema en Windows 7, donde no se usa ./configure. – Sabuncu

+0

En Windows, solucioné el problema con una nueva instalación - ver: http://stackoverflow.com/questions/8688709/virtualenv-on-windows-7-returns-assertionerror/10078890#10078890 – Sabuncu

16

No tengo suficientes representantes para agregar esto como comentario y esta pregunta tiene 3 años, pero podría ser útil para alguien. En Windows, debe desviarse a python.exe, pero parece que en Linux/OS X acaba de acceder a la carpeta. Ejemplo:

de Windows:

virtualenv -p <PATH TO PYTHON.EXE> venv 

Crea un entorno virtual en la subcarpeta "Venv" en el directorio actual.

+1

Yo te voté, ya que puede ser útil para alguien. – Drachenfels

1

No tengo suficientes representantes para agregar comentarios. Mike's respuesta salvar mi día. Estoy usando Windows.

que estaba recibiendo el error:

AssertionError: Filename C:\Python35\Lib\os.py does not start with any of these prefixes: ['c:\\python35', 'c:\\python35'] 

tuve que correr esto-

virtualenv -p C:\Python35\python.exe venv 

también tienen que ejecutar esto de un cmd abierto como administrador. De lo contrario, consiguiendo el error

PermissionError: [WinError 5] Access is denied 

Alguien con suficientes repeticiones para comentar por favor añadir esto a Mike's respuesta como un comentario. Entonces limpiaré el mío.