2012-05-04 13 views
10

Después de hacer una fuente del entorno virtual Trato¿Por qué pip instala un paquete fuera de mi entorno virtual?

pip install -U --no-deps django-social-auth 

y devuelve:

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.6/dist-packages/django_social_auth-0.6.9-py2.6.egg-info/dependency_links.txt' 

¿Por qué se intenta escribir fuera del virtualenv?

+3

¿Puedes asegurarte de que la python que estás invocando es en realidad la del env virtual? –

+0

¿cómo podría hacer eso? – Bastian

+1

'which pip' en el terminal – JosefAssad

Respuesta

7

Me encontré con este problema cuando cambié el nombre del directorio que contenía mi entorno virtual. La pipa de ruta difícil estaba usando ya no era correcta.

Actualiza el shebang en el script pip para que apunte al ejecutable python de tu entorno virtual.

+0

¡excelente! Abrí el env/bin/pip virtual para darme cuenta de que el shebang no apuntaba al ejecutable python del env virtual. Lo he actualizado pero cuando activo este env virtual y hago 'which python' sigo obteniendo el python del sistema y no el env virtual. Sin embargo, es una muy buena respuesta hasta ahora. Marcándolo como aceptado. – Bastian

+0

Sí, creo que necesita ejecutar/ruta/a/virtualenv/bin/python – starsinmypockets

3

Probablemente deberías asegurarte de que eres el pip de tu entorno virtual, así que sth. como

./env/bin/pip install -U --no-deps django-social-auth 
4

En mi opinión, ya sea que se está ejecutando un pip que no forma parte de la virtualenv, o eres, pero el intérprete de python que se ejecuta no es parte de la virtualenv. Compruebe si el pip que está ejecutando es el correcto con which pip, y fuerce el pitón desde el virtualenv usando your_envdir/bin/python pip <arguments>, en lugar de simplemente invocar pip simple.

Esto es extraño, porque si activó correctamente el entorno con bin/activate, debería obtener el pip correcto. ¿Seguro que activó con . bin/activate y no con sh bin/activate? Son dos cosas diferentes. ¿Cambió el aviso?

+0

Tiene razón, que pip devuelve/usr/bin/pip. Usé 'source apps/virtual_environments/my_project/bin/activate' y el aviso cambió a '(my_project) user @ host: ~ $'. Y cuando trato de usar el pip que está en el entorno virtual obtengo: 'python: bad interpreter: No such such file or directory'. – Bastian

+0

¿Alguna idea sobre qué podría causar esto? – Bastian

+0

@Bastian: ¿no tienes python en el entorno virtual? –

Cuestiones relacionadas