Pyinstaller 打包 django 项目如何将命令行参数加入?

这篇具有很好参考价值的文章主要介绍了Pyinstaller 打包 django 项目如何将命令行参数加入?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因

Pyinstaller 打包 django 项目,打包成 manage.exe 后用命令行 cmd
manage.exe runserver 0.0.0.0:8001 --noreload 来运行感觉很不方便。

希望能够直接把命令行参数也打包进去,直接运行 exe 。我走了些弯路,但最终实现了。

弯路

我看到有人说 新建一个 main.py 在里面用 os.system :

import os

os.system('manage.exe runserver 0.0.0.0:8001 --noreload')

看起来可行,在 manage.py 外包裹一层,但我尝试以后失败了,打包出的是一个这样的结果:
Pyinstaller 打包 django 项目如何将命令行参数加入?,django,python,软件构建
运行无反应。没去深究为啥失败,毕竟对于打包我也不是太熟悉。

一种可行办法

接下来是我自己的办法。
其实也很简单,找到 main 函数,修改参数列表。

我的 Django 的 manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'src.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

注意这句:

 execute_from_command_line(sys.argv)

从函数名也能知道,这是一个实现从命令行执行的函数,传入的正是 命令行参数列表 sys.argv
我们只要修改 sys.argv,就可以固定参数列表了。

但这里是有个小坑在的,如果是初学者可能会犯错。

sys.argv 是参数列表,不是字符串,所以不可以直接把 ‘runserver 0.0.0.0:8001 --noreload’ 这串字符 append 进来,而要一个个来。

所以上面代码可以改为:

        ) from exc
    print(sys.argv)
    sys.argv.append('runserver')
    sys.argv.append('0.0.0.0:8001')
    sys.argv.append('--noreload')
    print('增加参数后:')
    for a in sys.argv:
        print(a, end=' ')
    execute_from_command_line(sys.argv)

当然,写成列表再 append 上也行的。

    argv = ['runserver', '0.0.0.0:8001', '--noreload']
	sys.argv.append(argv)

然后 pyinstaller -w -F manage.py 就会生成 manage.exe 了。

不过打包成 exe ,后续可能还会遇到其它问题,比如运行起来后,资源找不到的问题,需要一一解决,manage.spec 我只能提醒一下。

后来我觉得 Django 似乎没必要打包成 exe 。。。它用作网站欸,用 dos 界面运行就行了。

第二种办法

如果不一定要生成 exe,只需要方便运行,其实 写个 bat 脚本可能更方便一些。代码都不用动。
直接加一个 bat 脚本运行 manage.py ,然后发送脚本快捷方式到桌面。

xxx.bat 脚本参考:

@echo off

REM 这里加了一个临时环境变量
set sslpath=D:\xxx\anaconda3-2020\Library\bin
set path=%sslpath%;%path%

REM 此处用全局路径会更合适,避免python升级影响。
python manage.py runserver 0.0.0.0:8001

pause

这样还会有个黑黑的 dos 界面,可能会被人不小关闭了。可以再写个 vbs 调用刚才的 bat 脚本,隐藏 dos 界面:

set shell=wscript.createObject("wscript.shell")
run=shell.Run("xxx.bat, 0)

这样的话,你想要看到进程,就只能再后台看到一个 python 进程了。
Pyinstaller 打包 django 项目如何将命令行参数加入?,django,python,软件构建文章来源地址https://www.toymoban.com/news/detail-640422.html

到了这里,关于Pyinstaller 打包 django 项目如何将命令行参数加入?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python三种打包方式】分别使用PyInstaller & setupTools & 拷贝环境实现项目打包

    pyinstaller 和 setuptools 打包有什么区别(来自 ChatGPT 的答案) pyinstaller 和 setuptools 都是 Python 中常用的打包工具,但它们的主要目的和工作方式略有不同。 pyinstaller 是一个可以将 Python 代码 打包成一个可执行文件的工具 ,它会将你的 Python 代码和所有依赖项打包成一个单独的可

    2024年02月03日
    浏览(51)
  • python项目打包成exe可执行文件(pyinstaller库)

    前言:才入职新公司;进来工作内容,就是将之前的python脚本项目打包成.exe可执行文件;一来方便不同岗位的同事之间使用,二来源码信息不会改动和泄漏。 正因为python具有丰富的第三方库,目前已有数万之多;这里用到的是 \\\'pyinstaller\\\'库; 正文: 两种情况: Ⅰ、单独一个

    2024年02月06日
    浏览(49)
  • 通过pyinstaller将python项目打包成exe执行文件

    目录 第一步:安装pyinstaller 第二步:获取一个ico图标(也即是自己这个exe文件最后的图标) 第三步:打包 pip install pyinstaller 先从这里获取一个png图片:iconfont-阿里巴巴矢量图标库 再转化成ico图片(推荐256 x 256):PNG转ICO - 在线转换图标文件  可以把得到的ico图片放在pytho

    2024年02月09日
    浏览(56)
  • pycharm 项目打包制作安装包教程(pyinstaller/nuitka + nsis)

    目录 1.pycharm + pyinstaller + nsis(zip方式) 2.pycharm + nuitka + nsis + VNISEdit (目前使用) 一.在pycharm使用pyinstaller打包项目 先准备好要打包的python项目 将项目文件在terminal中打开 安装 pyinstaller pip install pyinstaller 输入pyinstaller的相关打包指令 我们选用 pyinstaller -D start.py start.py是启动入口

    2024年02月07日
    浏览(42)
  • 使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)

    1、将需要打包有python文件放到一个文件夹,例如下图所示的Demo文件夹,其中ClickEveryDay.py为主文件,telegram.ico为图标文件。   2、生成主函数对应的spec文件 命令:在Demo文件夹路径下使用:pyi-makespec ClickEveryDay.py,将产生一个ClickEveryDay.spec文件。 3、修改ClickEveryDay.spec文件:加

    2024年02月11日
    浏览(57)
  • Python封装——如何把python代码打包成一个可执行的.exe文件,Pyinstaller

    https://pyinstaller.org/en/stable/ Pyinstaller可以打包Win、Linux、MacOS下的python程序,在什么环境下打包的就是什么平台的程序。相对来看,Pyinstaller打包的程序体积大、安全性稍差(容易反编译),但是上手相对简单一些。 安装:cmd下输入pip install Pyinstaller(P大写) 清华大学镜像 pip in

    2024年02月10日
    浏览(68)
  • Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

    pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,

    2024年02月08日
    浏览(53)
  • Python3.9使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

    pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,

    2024年02月09日
    浏览(64)
  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(72)
  • 如何添加github项目合作者,用自己的github账号加入项目

    最近需要部署一套文档去公司的gtihub,记录一下如何用自己的github往别人的github中上传文档,第一步就是要添加自己为该项目的合作者。 1. 首先登陆项目仓库存在的github账号。 2. 点击settings-Repositories。就能看到现有的仓库,最右边会有collaorators的字样显示目前有几个合作者

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包