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:
git clone git://github.com/django/django.git django-trunk
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 $