使用pyinstaller打包django的方法实现

 更新时间:2021年09月30日 10:21:02   作者:倔犟的贝壳  
本文主要介绍了使用pyinstaller打包django的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

虽然django项目我们一般通过部署服务器进行发布,但是也有些情况,可能就是一个小小的数据管理应用,也就内部几个人使用,想直接打包成一个应用,在没有任何python环境的普通的机器上就能运行,内网能访问就可以了。
pyinstaller 就能够用来将python应用打包成可执行文件。

Step 1: 生成spec文件

pyi-makespec -D manage.py 

执行成功后,会显示如下信息,表示可以去构建可执行文件了

now run pyinstaller.py to build the executable

在目录下面会生成一个 manage.spec的文件,相当于一个构建可执行文件的配置文件。打开文件,可以看一下,主要有两个地方需要配置:

1.datas=[] 该配置用于配置static文件和templates文件
hiddenimports=[] 把settings里的install_apps 拷贝过来

 datas=[('/Users/huanghuan/Documents/python学习/django/loftyha/static','./static')],
             hiddenimports=[ 'django.contrib.admin',
                    'django.contrib.auth',
                    'django.contrib.contenttypes',
                    'django.contrib.sessions',
                    'django.contrib.messages',
                    'django.contrib.staticfiles',
                    'shift',],

Step 2: 使用pyinstaller 构建可执行文件

pyinstaller manage.spec 

待上述命令执行完,在目录下面会生成dist和build目录,在dist/manage目录下,有一个可执行文件manage
cd dist/manage目录下,命令行执行manage文件

./manage runserver ip:port --noreload

--noreload参数如果不加,有可能会报错: RuntimeError('Script %s does not exist.' % py_script)

Traceback (most recent call last):
  File "manage.py", line 23, in <module>
  File "manage.py", line 19, in main
  File "django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "django/core/management/commands/runserver.py", line 61, in execute
    super().execute(*args, **options)
  File "django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "django/core/management/commands/runserver.py", line 96, in handle
    self.run(**options)
  File "django/core/management/commands/runserver.py", line 103, in run
    autoreload.run_with_reloader(self.inner_run, **options)
  File "django/utils/autoreload.py", line 640, in run_with_reloader
    exit_code = restart_with_reloader()
  File "PyInstaller/hooks/rthooks/pyi_rth_django.py", line 72, in _restart_with_reloader
  File "django/utils/autoreload.py", line 257, in restart_with_reloader
    args = get_child_arguments()
  File "django/utils/autoreload.py", line 244, in get_child_arguments
    raise RuntimeError('Script %s does not exist.' % py_script)

到此这篇关于使用pyinstaller打包django的方法实现的文章就介绍到这了,更多相关pyinstaller打包django内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python星号*与**用法分析

    Python星号*与**用法分析

    这篇文章主要介绍了Python星号*与**用法,结合实例形式较为详细的分析了Python中的星号*与**在函数参数及数值运算中的相关使用技巧,需要的朋友可以参考下
    2018-02-02
  • Python入门之基础语法详解

    Python入门之基础语法详解

    这篇文章主要介绍了Python入门之基础语法详解,文中有非常详细的代码示例,对正在学习python的小伙伴们有很大的帮助哟,需要的朋友可以参考下
    2021-05-05
  • Python 含参构造函数实例详解

    Python 含参构造函数实例详解

    这篇文章主要介绍了Python 含参构造函数实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • pycharm终端解释器与Python解释器配置

    pycharm终端解释器与Python解释器配置

    这篇文章主要介绍了pycharm终端解释器与Python解释器配置,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Python IDLE清空窗口的实例

    Python IDLE清空窗口的实例

    今天小编就为大家分享一篇Python IDLE清空窗口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 对于Python深浅拷贝的理解

    对于Python深浅拷贝的理解

    这篇文章主要介绍了对于Python深浅拷贝的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python 检测nginx服务邮件报警的脚本

    python 检测nginx服务邮件报警的脚本

    这篇文章主要介绍了python 检测nginx服务邮件报警的脚本,帮助大家更好的利用python监控服务器状态,感兴趣的朋友可以了解下
    2020-12-12
  • 在django中实现choices字段获取对应字段值

    在django中实现choices字段获取对应字段值

    这篇文章主要介绍了在django中实现choices字段获取对应字段值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python实现拷贝多个文件到同一目录的方法

    Python实现拷贝多个文件到同一目录的方法

    这篇文章主要介绍了Python实现拷贝多个文件到同一目录的方法,涉及Python针对文件与目录的遍历、复制等相关操作技巧,需要的朋友可以参考下
    2016-09-09
  • pandas DataFrame行或列的删除方法的实现示例

    pandas DataFrame行或列的删除方法的实现示例

    这篇文章主要介绍了pandas DataFrame行或列的删除方法的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论