¿Por qué la versión de desarrollo de Django no sabe dónde están mis packages?

Solía ​​desarrollar una aplicación Django usando una versión estable (1.6) de Django. Me instalaron en Ubuntu usando sudo apt-get install python-django , y también usé los packages Django sorl-thumbnail y tastypie .

Desde entonces, quería cambiar al uso de la versión de desarrollo de Django , por lo que lo instalé con las instrucciones en su documentation:

  1. git clone git://github.com/django/django.git django-trunk
  2. sudo pip install -e django-trunk/

En mi máquina, Django ahora se encuentra en ~/git/django-trunk .

Sin embargo, cuando vuelvo a mi directory de proyecto de Django y ejecuto python manage.py syncdb , parece que obtengo:

 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/$USER/git/django-trunk/django/core/management/__init__.py", line 427, in execute_from_command_line utility.execute() File "/home/$USER/git/django-trunk/django/core/management/__init__.py", line 391, in execute django.setup() File "/home/$USER/git/django-trunk/django/__init__.py", line 21, in setup apps.populate(settings.INSTALLED_APPS) File "/home/$USER/git/django-trunk/django/apps/registry.py", line 84, in populate app_config = AppConfig.create(entry) File "/home/$USER/git/django-trunk/django/apps/base.py", line 86, in create "cannot import name '%s' from '%s'" % (cls_name, mod_path)) ImportError: cannot import name 'thumbnail' from 'sorl' 

¿Esto es porque Django ya no sabe dónde están mis aplicaciones Django instaladas?

Creo que están en /usr/local/lib/python2.7/dist-packages si eso ayuda …

¿Cómo soluciono este error y consigo que todas las aplicaciones de Django funcionen con la versión de desarrollo? ¿Simplemente tenía que git clone la versión de desarrollo de Django en /usr/local/lib/python2.7/dist-packages , o alguna otra cosa?

Cualquier ayuda sería muy apreciada, ¡muchas gracias de antemano!

Necesita usar un entorno virtual e instalar las dependencies para su proyecto en cada entorno virtual.

De esta forma, el intérprete de Python tendrá acceso a las bibliotecas requeridas en todo momento. Para empezar:

 sudo apt-get install -y python-virtualenv 

Esto instalará las bibliotecas necesarias para que virtualenv funcione; luego, para cada proyecto, comienzas creando un nuevo ambiente virtual. Todos estos commands se ejecutan como su usuario normal (sin sudo ):

 $ virtualenv django_env $ source django_env/bin/activate (django_env) $ pip install django tastypie solr-thumbnail 

Escribir activate activará el entorno, por lo que su caparazón apuntará a las versiones correctas de Python. Notará el (django_env) que indica que el entorno está actualmente activo.

A partir de ahora, todo lo que instale se instalará solo en este entorno virtual. Una vez que haya terminado de trabajar, al escribir deactivate volverá al entorno Python del sistema:

 (django_env) $ deactivate $