c1ino's Blog

c1ino's Blog


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Python3 重载主模块(__main__)的权宜之计(workaround)

发表于 2020-02-10 更新于 2020-02-14 分类于 笔记
本文字数: 3.4k 阅读时长 ≈ 3 分钟

本文经验仅供参考。

概要

既不了解 import 原理,也不了解 ModuleSpec, loader, importer ,更不了解 importlib 模块的情况下,所写出的邪门歪道式强行重载主模块(__main__)的方法。

别名/Alias for SEO

重载 / 重新加载 / 热重载 / 热更新
主模块 / 当前模块 / 顶层模块 / 顶层脚本环境 / 顶层代码 / 顶层文件 / 主文件
权宜之计 / 解决方法 / 怎么 / 怎样 / 如何
交互模式 / 交互式 / 互动式
Python3 / Python 3.x / py3
top-level script, interactive mode, main module reload, workaround, how to

权宜之计/TL;DR

示例:

1
2
3
4
5
6
7
8
9
10
11
12
def reload__main__():
'''reload __main__ workaround'''
# __main__ module
mod = sys.modules['__main__']

# reload
loader = mod.__dict__['__loader__']
loader.exec_module(mod)

# from __main__ import *
sys.modules['__main__'].__dict__.update(mod.__dict__)
return mod

或者这篇讨论中列举的方法?(未验证)

https://stackoverflow.com/questions/29960634/reload-the-currently-running-python-script/29962256#29962256

阅读全文 »

Python3 venv 模块 No module named 'encodings' 其中一种解决办法

发表于 2020-01-19 更新于 2020-02-04 分类于 笔记
本文字数: 819 阅读时长 ≈ 1 分钟

本文经验仅供参考。

报错信息

1
2
Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

问题描述

Win10 系统中使用 Python 3.x 自带的 venv 模块所生成的虚拟环境时出现的错误。

解决办法/TL;DR

恢复安装 venv_path\pyvenv.cfg(虚拟环境配置文件)所指定的特定路径和版本的 python 解释器。
(或者使用 python -m venv --upgrade "venv_path" 更新配置文件以指定虚拟环境使用系统中当前的 python 解释器?)

阅读全文 »

使用 Win10 命令提示符自带命令实现彩色输出

发表于 2019-08-03 更新于 2019-08-12 分类于 笔记
本文字数: 3.1k 阅读时长 ≈ 3 分钟

前言

原理是使用 ANSI 转义序列(ANSI escape code) 来控制文本的颜色,在 Win10 系统的 命令提示符 / 命令行 / 控制台 / cmd 的窗口中仅使用 cmd.exe 内置的命令来实现彩色输出,无论是在 Command Prompt(命令提示符) 中还是 .bat / .cmd 批处理脚本中。

ANSI 转义序列 支持的颜色: 3/4 bit(8/16色)、8 bit(256色)、24 bit(RGB真彩色)

限制:Win10 较旧的版本可能不支持。

本文仅作分享,不保证准确性。

目录

  • 前言
  • 目录
  • 简介
    • FAQ
    • 原理与方法
  • 3/4 bit(8/16色)
  • 8 bit(256色)
  • 24 bit(RGB真彩色)
  • 参考
    阅读全文 »

简易建立 Win10 至 iOS 的多媒体无线串流

发表于 2019-06-19 更新于 2019-07-30 分类于 笔记 , 串流
本文字数: 9.2k 阅读时长 ≈ 8 分钟

前言

关于如何在局域网内从 Win10 系统串流至 iOS 系统的一些简易方法的总结。

主要使用 FFmpeg 和 iOS 的 VLC 应用通过常见的流媒体协议实现直播串流,以及其他一些不需使用 FFmpeg 的点播串流方法。

(多媒体串流,指无需下载完整文件就可以播放流媒体。)

写作 primer guide,读作笔记


目录

  • 前言
  • 目录
  • 简介
    • 用途
    • 优点
    • 弊端
    • 环境准备参考
    • FFmpeg 使用示例
  • 直播
    • HTTP 点对点串流
    • UDP/RTP 组播串流
    • RTMP/HLS/DASH 流媒体服务器串流
    • 直播附笔
  • 点播
    • 常见文件服务器
    • DLNA / UPnP 服务器
    • 点播附笔
  • 其他类型
  • 附录
    • 部分相关参考
    • 题外话
      阅读全文 »

c1ino

c1ino's Blog
4 日志
2 分类
9 标签
RSS
Creative Commons
© 2019 – 2020 c1ino
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.2.0
0%