Python 编程进阶
文章平均质量分 85
Likianta Me
Github 同名搜 "likianta". Python 开发, GUI, Web 全栈.
展开
-
关于 Jupyter Console 没有自动提示 (补全) 的修复
都会启动命令行界面, 但二者在体验上存在一些不同之处, 其中最显著的就是前者没有自动补全, 而后者有, 因此使用体验受到影响. 好在本文就是为了解决这个问题的.是一个 python 库, 用来给命令行 REPL 提供上下文感知, 自动补全, 历史记录等功能. 它是 ipython 和 jupyter 的重要依赖之一.提供这个参数, 就应该能够使用自动补全功能, 但本人测试最新版 (截至 2023-07-01) 并没有作用, 个人怀疑是 jupyter 的一个 bug.此外, 根据官方文档描述, 启动。原创 2023-07-01 02:36:38 · 1191 阅读 · 0 评论 -
Lottie 动画导出为 GIF/MP4 以及与 QML 集成演示
lottiefiles 是一个很好的网站, 从上面可以下载到别人分享的 lottie 动画文件.我们可以下载到多种格式, 下面分别讲解每个格式的下载和适用情景.这是体积最小的格式, 一般在 10kb ~ 100kb 之间. 考虑到 lottiefiles 的服务器在国外, 下载这种格式是最快的.下载完成后, 我们可以用本地工具将它转换成图像或视频文件. 见下面的 “文件格式转换” 部分.lottiefiles 有一个特别强大的功能, 支持编辑 lottie 动画的颜色. 你可以在修改成自己喜欢的颜色后下载成原创 2022-12-04 23:52:00 · 3093 阅读 · 2 评论 -
Python 函数转命令行界面库 -- Argsense CLI
argsense 是一个 python 命令行界面库, 是 click, fire, typer 之外的又一个选项.argsense 最大的特点是极低的侵入性设计和近乎零成本的上手难度, 如果你熟悉 python 函数是如何传参的 (这是大部分 python 初学者已经掌握的知识), 那么你就可以很快上手 argsense.原创 2022-11-21 00:11:15 · 305 阅读 · 0 评论 -
Python 增量更新/打包解决方案 -- Depsland
depsland 是针对轻量化的应用分发方案打造的基础服务框架, 用于帮助开发者快速分发 python 应用程序, 并为用户提供简单友好的程序安装, 升级和管理服务.depsland 是一个开源项目 (项目地址), 它诞生于 pyportable-installer (项目地址), 现已作为独立的工具供 python 开发者下载和使用.原创 2022-11-13 15:09:27 · 1824 阅读 · 0 评论 -
从指定路径加载 Python 模块
我个人觉得此方案非常优秀. 它有效解决了同名但不同目录的包的导入, 导入空间可能被污染的隐患, 以及导入效率等问题.直接在 sys.path 中添加该 zip 文件的路径即可, 可以是绝对路径, 也可以相对路径.使用方法非常直观易懂. 而且不会带来类似 sys.path 的方法中那种导入空间被污染的隐患.注意不同系统打印的结果存在一些差异. 使用 IDE 启动, 也会和命令行启动存在一些差异.该优先级决定了, 如果不同目录下有同名的子文件夹, 那么靠前的目录下的才会被成功导入.原创 2022-09-02 12:09:59 · 2552 阅读 · 0 评论 -
Python WebApp 全栈开发 (技术方案备忘)
技术方案:💎 flask + dominate/domonic + brython + pico css近期的亮点:brython 发布了 3.10.6 版本 (于 2022 年 6 月!):很高兴看到 brython 仍处于活跃的状态.🚫 flask + dominate/domonic + pyscript + pico css不采用理由:flask: 服务器, 路由, 静态资源系统dominate / domonic: 使用 python 语法快速生成 (静态) html算是手写 html 或者 ..原创 2022-06-30 17:45:07 · 617 阅读 · 0 评论 -
从 flask 服务端代码自动生成客户端代码 -- flask-native-stubs 库介绍
flask-native-stubs 项目灵感来源 swagger 的 codegen 工具. 用来从服务端的路由函数自动生成对应的客户端接口函数.你将会体验到如同 “本地函数调用” 般的快捷和自然. 如同下面这样:服务端代码:客户端代码:使用 flask_native_stubs 自动生成的代码 (上面代码块中引用的 “server_stubs.py”) 看起来长什么样:运行截图:“stub” 引用自 java j2ee 的 stub 概念:在 python 中, 也有 stub 的原创 2022-06-13 00:19:52 · 380 阅读 · 0 评论 -
Python 语言在实际使用中遇到的一些缺点和不足
综合影响范围和影响程度降序排列.略.python 的模块的相对路径不是相对于自身文件路径, 而是相对于 . 它给不规范的依赖库带来了风险.例如, 依赖库 A 在其内部使用 os.chdir 改变了工作目录, 并使其内部的相对路径正常工作; 但是, 由于某种原因, A 未将其还原到默认的工作目录 (比如非预期的报错, 或者设计漏洞等), 就导致我们的代码中之后使用相对路径的地方全部受到了破坏! 而且该错误比较隐晦, 找到错误根源非常困难.主要表现为:示例:例如 KeyError, IndexError, As原创 2022-05-20 17:56:46 · 1508 阅读 · 0 评论 -
Python GUI 框架个人体验及评价 (2022)
说明事项为不挤占文章排版空间, 我将说明事项放在了文末. 点此跳转.目录本文内容量巨大. 请善用博客左侧的目录导航快速跳转你想看的章节.💠 Python GUI💡 声明式 UI 框架🔥 QML (PySide6/PySide2/PyQt6/PyQt5) (★★★★★)关键词: qt; 反应式编程; 高级动效; 声明式 ui; 现代化应用截图: 点击跳转本文附录.宽高, 以及隐式宽高的处理qml 的 width, height 和 implicitWidth, implicitHeig原创 2022-05-06 01:01:07 · 3989 阅读 · 0 评论 -
在 Windows 上使用 bpython
解决思路提示: 如需看 "解决流程", 请直接跳到下一个章节.windows 用户直接运行 bpython, 会遇到很多 "ModuleNotFound" 错误.根据官方的 解决方法, 我们需要手动下载 curses 库 (一个 whl 文件), 然后在终端使用 bpython-curses 启动.考虑到官方的这个建议已经比较老了, (大概在 7 年前提出的?) 现在我们要解决 curses 的问题其实有更好的方法: 通过 pip install windows-curses 一步到位.原创 2022-05-02 18:01:09 · 1702 阅读 · 0 评论 -
下一个 Brython? 不, 是 Python in WebAseembly
pyscript (官网) 支持在 html 中使用纯 python 语法的脚本标签. 形如下面的示例:<html> <py-script> print("now you can run python in your html!") </py-script></html>部分了解过 brython 的人可能对此感到熟悉, 但二者也有显著的不同:brython 是将 python 代码转换成 “等价” 的 javasc原创 2022-05-01 10:29:48 · 683 阅读 · 0 评论 -
Python 编程规范之代码 (注释) 的引用 (个人向)
设计目标稳定: 用户根据预设的语法规则应该创建出一条 符合预期的 引用易用: 此引用语法应该便于书写和理解明确: 当我使用该引用语法时, 不会产生歧义普适性: 可以对任意内容, 任意对象进行引用. 它可以是一个函数, 一句代码, 一条注释, 一个非代码文件的指定 part, 一个网页链接等 (查看 此示例)非侵入式: 对于引用对象来说, 设置锚点不是必须的示例:侵入式是在被引对象上进行标记, 即被引对象需要被修改:请跳转查阅 [表格的第二行内容](#20210403003原创 2021-04-03 01:51:13 · 1067 阅读 · 1 评论 -
介绍一款 pyinstaller 的替代品
背景之前在打包自动化工具的时候, 我用过 pyinstaller 和 py2exe, 主要遇到了以下这些问题:依赖导致的体积过大 (我用到了 numpy, opencv-python, pyside2 等第三方库)依赖缺失 (可能跟我没有配置好 hidden-import 参数有关, 一些第三方包隐式调用了其他包, 修复这个问题仍然让人头疼)路径错位, 导致我自己的模块找不到包的位置, 以及相对路径也容易出错如何在打包中加入非代码类的资源文件有一个比较典型的场景是, 我的程序会原创 2021-03-07 15:08:25 · 5960 阅读 · 3 评论 -
Python 类属性, 实例属性, 类的单例化行为解惑
区分清 “类属性” 和 “实例属性” 的概念: 直接定义在类下面的是类属性, 定义在 __init__ 中的 self.xxx 是实例属性.当类属性是可变类型的对象时, 你才会看到它的多个实例化对象的类属性之间在相互 “干扰” (因为可变类型本质是一个引用, 你修改了这个引用, 别的实例也在持有这个引用, 也就看到引用的内容变了). 而相比之下, 实例属性则是每个实例各自持有的, 不会产生干扰.原创 2020-11-24 01:03:43 · 364 阅读 · 0 评论 -
xlsxwriter 单元格样式讲解
如何设置单元格样式示例如下:import xlsxwriterbook = xlsxwriter.Workbook( filename='./test.xlsx', options={ # 全局设置 'strings_to_numbers': True, # str 类型数字转换为 int 数字 'strings_to_urls': False, # 自动识别超链接 'constant_memory': False, # 连续内原创 2020-08-09 23:40:51 · 9260 阅读 · 1 评论 -
初次使用 python poetry 包管理模块踩坑
注: 本文不讨论常规的 poetry 使用方法, 只讨论国内开发者在使用 poetry 时可能遇到的一系列问题, 并提供本人踩坑后的解决方法.poetry new, poetry init 在哪个目录下生成?结论: poetry new 在未创建项目时使用, poetry init 在已有项目中使用.poetry newpoetry new 在未创建项目时使用, poetry 将引导你完成项目创建.假设我们在 D:\workspace\plaground 创建了一个名叫 “poetry-demo”原创 2020-08-09 10:51:59 · 11237 阅读 · 1 评论 -
利用 poetry 打包 python 模块发布到 pypi
前述不少人应该对 Python 打包心存阴影, 不同于 Go 与 Rust 在项目打包时的快感, Python 的打包系统和依赖管理比较复杂, setup.py, requirements.txt, setup.cfg, MANIFEST.in, Pipfile and Pipfile.lock (pipenv) 等诸多文件需要我们考虑 (https://learnku.com/python/t/38708).那么有没有 all-in-one 的项目打包工具呢? 这里我使用 poetry 满足了这个需求原创 2020-08-09 01:25:26 · 2540 阅读 · 0 评论 -
Python 代码美学 (个人习惯及一些建议)
文章目录更简洁的推导式if elseif else vs filter海象运算符 (Python 3.8)reduce 实现替换字符串中的指定字符变量命名习惯 (仅供参考!)对称好于不对称语义明确好于语义简洁格式一致好于格式不一致使用 i-, o- 前缀表示 "输入", "输出"目录路径末尾不加斜杠项目目录结构 (仅供参考!)参考更简洁的推导式if else# Q: 从服务器返回的响应可能...原创 2019-11-15 10:55:38 · 914 阅读 · 0 评论