最近在写一个简单的文件服务器用来访问静态文件,遇到在pyinstaller无窗口模式下无法启动的问题,记录一下解决方案。

  • 原因:http.server需要将记录输出到窗口,而pyinstaller打包无窗口模式没有地方输出

    class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
    ... def log_message(self, format, *args):
    """Log an arbitrary message. This is used by all other logging functions. Override
    it if you have specific logging wishes. The first argument, FORMAT, is a format string for the
    message to be logged. If the format string contains
    any % escapes requiring parameters, they should be
    specified as subsequent arguments (it's just like
    printf!). The client ip and current date/time are prefixed to
    every message. Unicode control characters are replaced with escaped hex
    before writing the output to stderr. """ message = format % args
    sys.stderr.write("%s - - [%s] %s\n" %
    (self.address_string(),
    self.log_date_time_string(),
    message.translate(self._control_char_table)))
  • 解决方案:

    import os
    import http.server
    import socketserver DIRECTORY = os.path.join(os.path.abspath(os.path.dirname(__file__)), "static", "js")
    PORT = 38121 class SimpleHTTPRequestHandlerWithDirectory(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs):
    super().__init__(*args, directory=DIRECTORY, **kwargs) # 重写这个防止服务打包后起不来
    def log_message(self, format, *args):
    pass def run_server(port=PORT):
    # 创建并启动服务器
    try:
    with socketserver.TCPServer(("", port), SimpleHTTPRequestHandlerWithDirectory) as httpd:
    # print("Serving at port", port)
    httpd.serve_forever()
    except OSError as e:
    print(e)
    pass if __name__ == '__main__':
    run_server()

pyinstaller 打包无窗口python http.server无法启动的更多相关文章

  1. pyinstaller打包自己的python程序

    使用Pyinstaller打包步骤如下 1. 安装pyinstaller pip install pyinstaller 查看安装的版本 pyinstaller --version 2. 给脚本加密 ...

  2. python appium server代码启动和关闭遇到的坑

    第一次使用博客,小白级,互相交流,有说的不对的地方欢迎来喷!!! 自动化的目的就是减少人工成本,如果每次跑自动化用例时都要手动起appium客户端,太费事了~~故,将appium server的调起和 ...

  3. PyInstaller打包python脚本的一些心得

    PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...

  4. PyInstaller打包Python源文件为可执行程序exe

    1. 安装PyInstaller 使用命令:pip install PyInstaller时可能会由于网络的问题出现以下问题: pip._vendor.urllib3.exceptions.ReadT ...

  5. PyInstaller 打包 python程序成exe

    pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...

  6. Python: pyinstaller打包exe(含file version信息)

    最近项目上一直都是用Spyder直接运行.py文件的方式来执行每日的自动化程序,每天都要手动去点击Run来执行一次,所以考虑把.py文件直接打包成exe,然后用windows的task schedul ...

  7. python用pyinstaller打包成exe文件

    版本为Python2.7 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后安装  使用pip命 ...

  8. pyinstaller打包python文件成exe(原理.安装.问题)

    py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...

  9. 【Python开发】PyInstaller打包Python程序

    PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...

  10. pyinstaller打包的exe太大?你需要嵌入式python玄学 探索篇

    上篇我们讲到pip的安装以及普通库用pip的安装方法 CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 拓展篇​zhuanlan.zhihu.com 问题纷沓而 ...

随机推荐

  1. Windows编译PDF库:libharu

    libharu编译需要libpng,libpng依赖zlib,所以需要下载这三个库 libharu下载:http://libharu.org/ libpng下载:http://www.libpng.o ...

  2. HDC2021技术分论坛:HarmonyOS低代码开发介绍

    作者:sunyuhui,wangxiaoyan,华为2012实验室软件IDE专家 什么是低代码开发?低代码开发主要特点有哪些?如何利用低代码开发原子化服务?本文带你一探究竟~ 一.什么是Harmony ...

  3. DevEco Studio强大的预览功能让开发效率大大提升!

    原文:https://mp.weixin.qq.com/s/C5DL0wBubDX3exvPpeXBPQ,点击链接查看更多技术内容.   应用的开发过程中,往往需要多次调试和修改,如果支持实时预览,边 ...

  4. docker 应用篇————tomcat例子[七]

    前言 虽然我干的事情和java不多,但是例子是为了熟悉原理,而不是为了例子而例子的,故而整理一下tomcat的例子. 正文 使用官方示例: 然后运行一下. 没有找到然后进行下载了. 可以看到这里就已经 ...

  5. vscode 编写node的c++ 扩展

    前言 在此介绍一下node的c++扩展在vscode 上的编译环境,在此不多说,比较完善,看了肯定明白. 正文 c++ 环境搭建 下载mingw,然后配置好环境.下载地址为,官网,可以自己百度一下. ...

  6. css block,inline和inline-block概念和区别

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...

  7. 重新整理asp.net core 实操篇——简介

    前言 实操篇和底层刨析分开的,<重新整理.net core 计1400篇>是探索底层概念. 介绍asp.net core之前先介绍.net core. .NET Core 是一个通用的开放 ...

  8. MMDeploy部署实战系列【第五章】:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理

    MMDeploy部署实战系列[第五章]:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善 ...

  9. 使用mmdetection训练自己的coco数据集(免费分享自制数据集文件)

    首先需要准备好数据集,这里有labelme标签数据转coco数据集标签的说明:labelme转coco数据集 - 一届书生 - 博客园 (cnblogs.com) 1. 准备工作目录 我们的工作目录, ...

  10. 设备像素、css像素、设备独立像素、dpr、ppi 之间的区别

    一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...