2017-01-03 3 views
0

ich djnago Projekt folgende Einzel geschaffen habe, ist Verzeichnisstruktur des ProjektesPyinstaller nicht in der Lage statische Dateien finden

mysite 
--settings.py 
-- urls.py 
--wsgi.py 

polls(app) 
--static 
    --polls 
    --images 
--templates 
    --polls 
    index.html 
    results.html 
admin.py 
apps.py 
models.py 
urls.py 
views.py 

I Installer erstellt habe pyinstaller dass exe läuft gut Lage, Vorlagen zu laden Aber für statische Dateien (css und js), exe geben Fehler mich

C:\Users\sanjad\Desktop\testdemo\myinstaller>dist\manage\manage.exe runserver 
Performing system checks... 

System check identified no issues (0 silenced). 
January 03, 2017 - 10:10:15 
Django version 1.10.2, using settings 'mysite.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CTRL-BREAK. 
[03/Jan/2017 10:10:18] "GET/HTTP/1.1" 200 346 
Not Found: /static/polls/style.css 
[03/Jan/2017 10:10:18] "GET /static/polls/style.css HTTP/1.1" 404 2605 

Es folgt meine .spec Datei

# -*- mode: python -*- 

block_cipher = None 


a = Analysis(['..\\mysite\\manage.py'], 
      pathex=['C:\\Users\\sanjad\\Desktop\\testdemo\\myinstaller'], 
      binaries=None, 
      datas=[ 
        ('C:\\Users\\sanjad\\Desktop\\testdemo\\mysite\\polls\\templates\\','polls\\templates'), 
        ('C:\\Users\\sanjad\\Desktop\\testdemo\\mysite\\polls\\static\\','polls\\static') 
        ], 
      hiddenimports=[], 
      hookspath=[], 
      runtime_hooks=[], 
      excludes=[], 
      win_no_prefer_redirects=False, 
      win_private_assemblies=False, 
      cipher=block_cipher) 
pyz = PYZ(a.pure, a.zipped_data, 
      cipher=block_cipher) 
exe = EXE(pyz, 
      a.scripts, 
      exclude_binaries=True, 
      name='manage', 
      debug=False, 
      strip=False, 
      upx=True, 
      console=True) 
coll = COLLECT(exe, 
       a.binaries, 
       a.zipfiles, 
       a.datas, 
       strip=False, 
       upx=True, 
       name='manage') 
+0

hast du gesehen https://github.com/pyinstaller/pyinstaller/wiki/If-Things-Go-Wrong –

+0

ja ich habe es gesehen –

Antwort

0

Haben Sie die Antwort von fpx006 hier gesehen? https://github.com/pyinstaller/pyinstaller/issues/2368 Ich habe eine kleine Änderung wie folgt vorgenommen (auch in diesem Thread gepostet).

In meine Top-Level-urls.py

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT). 

ich das gleiche getan hatte meine Mediendateien mit

serviert zu bekommen
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)' 

Und dann meine Spec-Datei diese beiden hinzufügen zusammen mit meinem Migrationsordner wie folgt:

datas=[('filter/filter/core/migrations','filter/core/migrations'), 
('filter/media_root','media_root'),('filter/static','static_root')], 

wobei core der Name der einzigen App in thi ist s Django-Projekt und Filter ist der Name des Projekts. Es ist ein bisschen ein Hack, aber sollte es Ihnen erlauben, Ihre Django App in einer .exe zu verteilen und Ihr schönes Styling zu sehen.