• Python pyinsatller打包Django项目为exe文件


    1. 自行百度安装pyinstaller包。

    常用py文件打包
    到**.py文件所在的目录,shift+右键-在此处打开pow,注意路径中不要有中文
    执行命令:pyinstaller demo.py
    在当前的目录下,将会生成两个文件夹:build和dist。dist里面就是所有可执行文件,点击demo.exe就能运行了。
    常用用法:
    pyinstaller -F demo.py 只在dist中生产一个demo.exe文件。
    pyinstaller -D demo.py 默认选项,除了demo.exe外,还会在在dist中生成很多依赖文件,推荐使用。

    2. 若项目中有css、js等等。在settings文件中加入以下代码。

    STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root')

    终端运行:

    python manage.py collectstatic

    在django项目路径下执行python manage.py collectstatic会自动地将STATICFILES_DIRS列出的目录以及各个App下的static子目录的所有文件复制到STATIC_ROOT。

    django项目urls中加入:

    from django.conf.urls.static import static
    from django.conf import settings
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

    此处是将STATIC_ROOT目录的静态文件复制一份到网页 STATIC_URL路径下。

    3. 进入项目目录,shift+右键,在此处打开PowerShell窗口,输入命令pyinstaller -D manage.py

    4. 修改manage.spec:

    datas:里边加的是html文件,css、js等等文件。

    hiddenimports:后边会说到。

    5. 进入项目目录,shift+右键,在此处打开PowerShell窗口,输入命令pyinstaller manage.spec重新打包。

    6. 此时项目目录下会生成一个dist的文件夹,进入dist在进入manage文件夹,shift+右键,在此处打开PowerShell窗口,输入mange.exe按tab runserver。

    7.不报错则忽略,若报以下错误:

    No module named XXX,这是因为Django有些module不会自动收集,需要手动添加。
    解决方法:在manage.spec文件中修改hiddenimports=[]为hiddenimports=['users','users.apps','sql_server.pyodbc.compiler', '...', '...']
    回到了第4步。
    提示缺少什么module就在此处添加什么。(很恶心人的是每次只会提示一个错误,需要一直修改manage.spec文件,然后pyinstaller manage.spec重新打包)

    8. 进入dist在进入manage文件夹,shift+右键,在此处打开PowerShell窗口,输入mange.exe按tab runserver。不报错则忽略,若报以下错误:

    RuntimeError: Script runserver does not exist.
    [7964] Failed to execute script manage
    解决方案:运行时加--noreload 开关。
    即:manage.exe runserver 8000 --noreload

    9. 进入dist在进入manage文件夹,shift+右键,在此处打开PowerShell窗口,输入mange.exe按tab runserver 8000 --noreload。

    到此程序基本已经没问题,已经可以正常访问了。

    10. 拓展:新建一个run.py文件。

    import os
    
    
    os.system('manage.exe runserver 8000 --noreload')
    input()

    在run.py文件路径下,shift+右键,在此处打开PowerShell窗口输入pyinstaller -F run.py 打包run.py

    注:也可以加入图标run.ico:打包命令为:pyinstaller -F -i run.ico run.py

    将dist文件夹下的run.exe文件移到到 manage.exe同一路径下。

    下次双击运行run.exe 就能直接运行django项目了。

    -------ending--------

  • 相关阅读:
    WCF学习之旅—WCF第二个示例(七)
    WCF学习之旅—WCF第二个示例(六)
    WCF学习之旅—WCF第二个示例(五)
    WCF学习之旅—WCF概述(四)
    WCF学习之旅——第一个WCF示例(三)
    WCF学习之旅——第一个WCF示例(二)
    WCF学习之旅——第一个WCF示例(一)
    WPF入门教程系列二十三——DataGrid示例(三)
    WPF入门教程系列二十二——DataGrid示例(二)
    WPF入门教程系列二十一——DataGrid示例(一)
  • 原文地址:https://www.cnblogs.com/loren880898/p/14681933.html
Copyright © 2020-2023  润新知