2017-01-03 81 views
0

我创建djnago项目followong静态文件是Pyinstaller不能找到

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 

我一直在使用pyinstaller 是exe文件运行良好能够加载模板 但对静态文件(CSS创建安装项目的目录结构和JS),exe文件给我的错误

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 

以下是我的.spec文件

# -*- 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

你见过https://github.com/pyinstaller/pyinstaller/wiki/If-Things-Go-Wrong –

+0

是的,我已经看到了 –

回答

0

你见过由fpx006这里给出的答案吗? https://github.com/pyinstaller/pyinstaller/issues/2368我做了一个小的改动它,如下所示(也张贴在该线程)。

这添加到我的顶级urls.py

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

我做了同样的事情,让我的媒体文件送达

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

然后这两个添加到我的规格文件,我的迁移文件夹沿着如下:

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

,其中的核心是在THI唯一的应用程序的名称s^Django项目,并且过滤器是该项目的名称。这是一个黑客位,但应该让你发布你的Django应用程序的.exe和看见你美丽的造型。