个人积累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