Domanda

Disclaimer: sono nuovo a Python e Django ma ho esperienza di programmazione Drupal. Sto usando Windows 7 (stessi problemi su Windows XP)

Su Python 2.7 e Django-1.3.1, ho creato con successo un progetto predefinito

django-admin.py startproject djsite

Ora, ho bisogno di "bootstrap" djsite.manage come spiegato qui (http://www.pyinstaller.org/wiki/recipe/djangoapplication) in un file chiamato bootstrap.py situato nella directory principale di Djsite come segue:

import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

Eppure, non appena il compilatore vede:

import djsite.manage

Ottengo questo: "Errore: non riesco a trovare il file 'impostazioni.py' nella directory contenente 'c: python27 lib site-packages djsite manage.pyc'. Sembra che tu abbia personalizzato le cose .. . You'll have to run django-admin.py, passing it your settings module." E non so come seguire i consigli dell'errore in questa situazione.

Tuttavia, se invece emetto quanto segue in bootstrap.py:

import os, sys
sys.path.append(os.path.abspath('djsite'))
import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

Lo script funziona correttamente, ma rompe Pyinstaller (ho già posto questa domanda sulla mailing list di quel software (http://groups.google.com/group/pyinstaller/browse_thread/thread/174a72e26c26a44c). Anche se aggiungo il percorso Al DJSite nella variabile del mio percorso, ottengo lo stesso errore.

Quindi la mia domanda qui è questa: perché l'importazione del modulo gestita.py fallisce con questo approccio e come posso procedere? Grazie!

È stato utile?

Soluzione

Prova ad aggiungere questo al tuo bootstrap.py per informarlo dove vive il file di impostazioni:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'djsite.settings'

Ciò presumerà che DJSite sia nel tuo Pythonpath. Cioè, se si trova qui: /path/to/my/djsite, allora questo dovrebbe essere nel tuo Pythonpath: /path/to/my

In realtà il modo migliore per farlo dall'inizio è usare virtualenv che garantirà che il tuo ambiente sia corretto. Mi sento come se fosse stato parte del tuo tutorial se ricordo Bootstrap. Se stai usando VirtualEnv, assicurati di ricordare di farlo source bin/activate

Se questo non funziona, puoi provare a modificare il comando runserver:

args = ['manage.py', 'runserver', '--settings=/path/to/my/djsite/settings.py']
djsite.manage.execute_manager(djsite.manage.settings, args)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top