文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用pyinstaller打包django的方法实现

2024-04-02 19:55

关注

虽然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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯