个人积累python代码的策略

python包管理 在archlinux上,安装python包有两种方式: 通过系统包管理器安装,比如sudo pacman -S python-pandas 创建虚拟环境,在某个项目路径下使用pip安装到虚拟环境。也可通过uv等现代工具管理。 为了避免依赖冲突,我推荐在积累自己的代码时只用第2种方式。第1种方式只用于系统在安装软件时安装某些python依赖项,而不用于手动安装项目依赖的python包. 创建和使用虚拟环境的传统方法(推荐使用uv或poetry而不是这么做) python -m venv .venv # 创建虚拟环境.venv source .venv/bin/activate # 启用虚拟环境.venv pip install pandas # 安装包到虚拟环境目录下(.venv/lib/pythonx.xx/site-packages) pip freeze > requirements.txt # 导出当前虚拟环境下安装的包(主动安装的包和它们的依赖混在一起) pip install -r requirements.txt # 通过包列表安装py包 代替requirements.txt – 现代python包管理的统一标准:pyproject.toml [project] name = "proj" version = "0.1.0" requires-python = ">=3.13" dependencies = [ "pandas==2.3.1" ] 有了这个文件后下面的命令,会对当前项目进行打包,然后和依赖项一起安装到虚拟环境下 pip install -e . #使用-e是为了不将自己的源代码复制到虚拟环境,而只是创建链接,保证所有修改立即生效。 以上流程又需要手动查包的版本号,所以产生了更加方便的工具,比如uv,它能把以上创建虚拟环境和编辑pyproject.toml的流程自动化(只需要有个最初的包含项目版本号的pyproject.toml文件) uv add pandas # 把某个包添加到虚拟环境(不需要手动启动虚拟环境) uv sync # 根据当前pyproject.toml文件搭建项目的虚拟环境 uv run main.py # 在当前路径虚拟环境的上下文中执行命令 python项目结构与打包 一般在用与包名相同的目录存放所有代码(flat layout)后,再把它放进src/下(src layout)。 . |_ doc/ |_ scratch/ |_ src/ |_ myproject/ |_ __init__.py # 项目的代码目录中,这个文件作为可导入包的标记 |_ test/ 项目构建用工具 ...

August 6, 2025 · ponyofshadows

细节的匮乏

本文由Human Brain生成,内容全为虚构,请仔细甄别。 对于哲学问题,我能想到的,一定有几百或几千年前的人早就说过了。 所以我写的这种文章毫无学术价值,只能作为笨人精神症状的记录。 真理?爱?共同体?财富?你对这些抽象的词语产生过怀疑么 作者很难只用一本厚书不放过任何细节地阐述一件事物,而且对读者来说,从头到尾读懂也是一种折磨;宣传者不会总是展现事件的全貌、会选择有利于自己立场的部分报道,而且观众也没耐心读完又臭又长的报告… 总之,比起描述细节的话语,简短的话语更得人心。抽象的宏大叙事好处很多,它减轻了我们思考的负担、指引了人生的方向、凝聚了社会的共识。不过坏处是,有很多人(比如我)觉得自己脑子里抽象的东西太多、细节的东西太少,觉得自己脑海里重复的那一套话语和现实中的行为脱节,在注意到这一点后感到空虚和痛苦。 比如,在说“我要为科学进步做贡献”的时候,心里想的是什么呢?也许是一张迷雾缭绕的地图,我作为勇敢的探险者,从前人走过的道路行至深处,直至人迹罕至、荆棘丛生之地,然后再往前多走几步。可是,研究生活距这样的浪漫表达甚远。比如某人的研究生生活,先是上一些教材很厚且满篇都是大段推导的课程,同时日常在宿舍打打游戏,混吃等死。等课上完后,再到实验室里打杂。配料、封管、开管、测试、做PPT,维护仪器、采购耗材… 对几乎完全不理解的实验调调条件、重复实验、祈祷下次测出更强的信号——似乎抽象化能给一件事赋予魅力,但当你充分地和现实中的琐事打交道后,抽象的宏大叙事就开始滑稽起来。 找到几句抽象的话,把它们当作独到的理解、人生的意义、终极的答案,这只是一种生活模式——一种把话语当成自己的主人的模式。我曾期望如此生活能让自己安心,但实际上,对现实有一定抽象的话语会构筑一道美好的幻景,它与现实的对比增添了不安;而抽象到底的话不过是富有哲理的废话,对舒缓我的情绪毫无作用。 对唯物主义者来说,话语并非实体,无法在现实中成为庇护我们的港湾,它永远只是我们和现实打交道的手段。也许我真正匮乏的,并不是爱、金钱、博学、自由——那些在现代流行语中常见的人生彼岸。我觉得我真正匮乏的是那些用于联结现实的语言。我的五官和手足已经能让我看到、听到、闻到、触摸到现实,但我脑子里还有过剩的意识,对于我用我贫瘠的话语描绘的现实,它还不够满足,它还想要更细节、更深刻。

July 31, 2025 · ponyofshadows

Quick Note of Archlinux Installation

Official Installation guide Pre-installation Acquire an installation image Download 中科大镜像源Archlinux ISO Verify signature pacman-key -v archlinux-version-x86_64.iso.sig ## or gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig If the output is Good signature, it is unchanged Prepare an installation medium dd bs=4M if=path/to/archlinux-version-x86_64.iso of=/dev/disk/by-id/usb-My_flash_drive conv=fsync oflag=direct status=progress Boot the live environment You need to disable Secure Boot to boot the installation medium. modify the mirrorlist ## Stop the automatic update of the mirror list systemctl stop reflector.service ## edit it yourself vim /etc/pacman.d/mirrorlist These should be placed at the beginning of the list: ...

July 30, 2025 · ponyofshadows