pyinstaller 打包无窗口python http.server无法启动
最近在写一个简单的文件服务器用来访问静态文件,遇到在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无法启动的更多相关文章
- pyinstaller打包自己的python程序
		
使用Pyinstaller打包步骤如下 1. 安装pyinstaller pip install pyinstaller 查看安装的版本 pyinstaller --version 2. 给脚本加密 ...
 - python appium server代码启动和关闭遇到的坑
		
第一次使用博客,小白级,互相交流,有说的不对的地方欢迎来喷!!! 自动化的目的就是减少人工成本,如果每次跑自动化用例时都要手动起appium客户端,太费事了~~故,将appium server的调起和 ...
 - PyInstaller打包python脚本的一些心得
		
PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...
 - PyInstaller打包Python源文件为可执行程序exe
		
1. 安装PyInstaller 使用命令:pip install PyInstaller时可能会由于网络的问题出现以下问题: pip._vendor.urllib3.exceptions.ReadT ...
 - PyInstaller 打包 python程序成exe
		
pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...
 - Python: pyinstaller打包exe(含file version信息)
		
最近项目上一直都是用Spyder直接运行.py文件的方式来执行每日的自动化程序,每天都要手动去点击Run来执行一次,所以考虑把.py文件直接打包成exe,然后用windows的task schedul ...
 - python用pyinstaller打包成exe文件
		
版本为Python2.7 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后安装 使用pip命 ...
 - pyinstaller打包python文件成exe(原理.安装.问题)
		
py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...
 - 【Python开发】PyInstaller打包Python程序
		
PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...
 - pyinstaller打包的exe太大?你需要嵌入式python玄学 探索篇
		
上篇我们讲到pip的安装以及普通库用pip的安装方法 CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 拓展篇zhuanlan.zhihu.com 问题纷沓而 ...
 
随机推荐
- js复制文字到剪切板
			
此方法仅适用于 IE demo <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
 - HarmonyOS多音频播放并发政策及音频管理解析
			
音频打断策略 多音频并发,即多个音频流同时播放.此场景下,如果系统不加管控,会造成多个音频流混音播放,容易让用户感到嘈杂,造成不好的用户体验.为了解决这个问题,系统预设了音频打断策略,对多音频播放 ...
 - 直播预告丨Hello HarmonyOS进阶系列课程重磅来袭,4月27日开播
			
为了帮助初识HarmonyOS的开发者快速入门,我们曾推出Hello HarmonyOS系列一共5期课程(传送门:https://developer.huawei.com/consumer/cn/tr ...
 - 物联网浏览器(IoTBrowser)-Java快速对接施耐德网络IO网关
			
前一段时间有个Java技术栈的朋友联系到我,需要快速对接现有的无人值守称重系统,这里的对接是指替代现有系统,而非软件层面的对接,也就是利用现有的硬件开发一套替代现有软件的自动化系统.主要设备包括地磅秤 ...
 - sql 语句系列(列举非索引外键)[八百章之第九章]
			
列举非索引外键 列举出那些外键没有添加索引. 目的: 1.减少锁. 2.外键添加索引,提示了查询性能,因为要与父表做连接查询做笛卡尔积. 下面只要会复制即可,没有会去从新写一遍的. select fk ...
 - c++ 中const 原理
			
前言 在c++ 中和别的语言不一样,高级语言是将const编译了,c又不同这里不介绍,而c++ 是实现了. 正文 const 原理 请看一个解析: const a=10; int*p=&a; ...
 - 论文记载:A Survey on Traffic Signal Control Methods
			
ABSTRACT 交通信号控制是一个重要且具有挑战性的现实问题,其目标是通过协调车辆在道路交叉口的移动来最小化车辆的行驶时间.目前使用的交通信号控制系统仍然严重依赖过于简单的信息和基于规则的方法,尽管 ...
 - vscode使用ES6装饰器器语法
			
1. react项目 配置 package.json 需要安装 npm i @babel/plugin-proposal-decorators 可能需要重启项目 { "babel" ...
 - 【Oracle笔记】递归以及索引的一丢丢使用
			
[笔记]递归以及索引的一丢丢使用 递归写法,树查询 connect by nocycle prior START WITH XXX CONNECT BY PRIOR XXX ORDER BY XXX ...
 - 力扣907(java)-子数组的最小值之和(中等)
			
题目: 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组. 由于答案可能很大,因此 返回答案模 10^9 + 7 . 示例 1: 输入:arr = ...