Vagrant SSH 登录要求密码

故障现象 日常操作系统是 Windows ,通常使用 Vagrant 来搭建本地开发环境。在某次重装系统后,像往常一样用 vagrant up --provision 命令成功地创建了开发环境,接下来用 vagrant ssh 登录系统时,竟然提示要求输入密码: [email protected]'s password: 这是之前从未遇到过的问题。虽然可以用默认密码 vagrant 登录系统,但是总觉得不爽。一定要找到原因。 排查原因 用 vagrant ssh --debug 命令输出……

PyPi 使用 API 令牌进行身份验证

像往常一样使用 twine upload 命令将 Python 项目上传到 PyPi 上,意外地遇到了 401 错误: WARNING Error during upload. Retry with the --verbose option for more details. ERROR HTTPError: 401 Unauthorized from https://upload.pypi.org/legacy/ User fournoas has two factor auth enabled, an API Token or Trusted Publisher must be used to upload in place of password. 应该是 PyPi 调整了安全策略,不再允许启用两步验证的账号使用用户名密码来上传项目了,必须使用 API 令牌来进行身份验证。 登录 PyPi ,进入账户设置页,点击「……

阳明心学究竟是什么

王阳明本名王守仁,字伯安,号阳明子,故又被称为「阳明先生」。王阳明被称为「中国最后一位圣人」,他的学说「阳明学」不仅在中国,甚至在朝鲜和日本都有着深远的影响。相传东乡平八郎随身携带着一块写着「一生伏首拜阳明」的腰牌。虽然这个故事的可信度不高,但是蒋介石确实是在留学日本的时候接触到……

独裁统治下的个人责任

首先,我想对由《耶路撒冷的艾希曼》所引发的那场相当激烈的争论作些评论。我故意说“引发”,而不说“造成”,是因为这场争论大部分针对的是一本子虚乌有的著作。所以,我的第一反应是用那位著名的奥地利智者的话来打发这桩事:“再没有比关于一本任何人都没读过的书的讨论更有趣的事了。”然而,随着……

Pynecone 拔草 附应用的手动部署方法

Pynecone 是一个纯 python 的 Web App 开发框架。它的后端基于 Python 的 FastAPI 框架,前端基于 Node.js 的 Next.js 框架。但使用它不需要书写任何前端代码,可以完全用 Python 一把梭。听上去非常诱人,但实际如何呢? 一个简单 Pynecone 应用的代码如下: PYTHONimport pynecone as pc class State(pc.State): text: str = 'Hello, World!' def goodbye(self): self.text = 'Goodbye, World!' def index(): return pc.text(State.text, on_click=State.goodbye) app = pc.App(state=State) app.add_page(index, route='/') app.compile() Pynecone 会为每个 Session 维护一个 State 上下文,这个状态数据是……

非机动车过马路要下车推行吗?

网上看到有人说自己骑电动车通过路口时被警察拦下,并被告知非机动车过马路必须下车推行。那么非机动车通过路口时是否需要下车推行呢?答案是:不需要! 交警所谓的「执法依据」是《中华人民共和国道路交通安全法实施条例》第三章、第三节,「非机动车通行规定」中的第七十条之规定: 驾驶自行车、电动自……

自用 NAS 应用软件清单

搭建个人 NAS 服务的应用软件……

用 Dnspooh 自建安全 DNS 服务器

Dnspooh 是一款使用 Python 开发的开源 DNS 代理/中继,支持 DoH 和 DoT 协议。用户可以将 Dnspooh 部署在本地,借助它可以让不支持 DoH 和 DoT 协议的客户端应用或操作系统使用安全的 DNS 服务,从而避免被运营商或网管之类的中间人劫持或嗅探。 除此之外, Dnspooh 还支持可插拔中间件用于扩展软件功能。 Dnspooh 内置了几个比较有用的中间件:缓存中间件……

发送 Ctrl+C 事件终止 Windows 控制台进程

偶然在 Nuitka 的代码中发现一个未被触发的 BUG 。问题代码位于 OnefileBootstrap.c 的 cleanupChildProcess() 函数中。这段代码中第 654 行的 GenerateConsoleCtrlEvent() 总是返回 FALSE ,导致子进程无法收到 CTRL-C 信号。不过由于 Nuitka 的代码中只有 cleanupChildProcess(false) 调用,因此这个 BUG 正常情况下不会被触发。不幸的是,本人 fork 了 Nuitka 的项目 Nuitka-winsvc 正好触发了这个 BUG 。Nuitka-winsvc 为 Nuitka 增加了编译为 Windows 服务的选项。当停止服务时,需要向子进程发送 CTRL-C 信号来优雅结束子进程……

使用 Nuitka 将 Python 程序编译为 Windows 服务

2023-02-14 更新: 原来 Nuitka 商业版通过插件已经实现了编译 Windows service 的功能,但开源版本不提供此功能。掏钱是不可能掏钱的。本人 fork 了 Nuitka 项目,加入了编译 Windows service 的功能,只要在编译时加入 --windows-service 参数就将 Python 程序能构建成 Windows service 了: SHELLpip install nuitka-winsvc nuitka --onefile --windows-service --windows-service-name=myservice main.py 项目地址: https://github.com/tabris17/Nuitka-winsvc 在前文《Nuitka 编译时注入自定义 C 代码》中介绍了在 Nuitka 编译时注入自……