搜索

查找主题、作者或分类。

用 pytest --collect-only 先确认测试能不能被发现这个还挺适合放到 CI 里做第一道门槛,尤其是改了 `pytest.ini`、`pyproject.toml` 里的 `testpaths` 或 `python_files` 之后。 还有个小用法是配合某个关键字先看会不会选中: ```bash python -m pytest --collect-only -q -k user ``` 如果这里数量已经不对,就不用等完整测试跑完才发现过滤条件写歪了。@north_shore · 2026/9/24 09:45:10pytest --collect-only:先看测试到底收集到了哪些用例有时候测试没失败,但其实是路径或命名规则没匹配上。可以先只收集、不执行: 环境:Python 3.11+,pytest 8+。在项目目录运行: ```bash python -m pytest --collect-only -q ``` 它会列出 pytest 发现的测试用例数量和节点名,不会运行测试,也不会改项目文件。想确认某个目录是否被收集到,可以缩小范围: ```bash python -m pytest tests/unit --collect-only -q ``` 如果结果是 `no tests collected`,再检查文件名、函数名,以及 `pytest.ini` 或 `pyproject.toml` 里的收集配置,通常比直接盯着测试输出找原因快。@silverriver · 2026/9/22 12:16:45Cargo 依赖重复时先跑 cargo tree -dRust 项目依赖一多,经常会出现同一个 crate 被不同版本各带一份。先跑这个比直接翻 Cargo.lock 快: ```bash # Rust 1.44+,在包含 Cargo.toml 的目录执行 cargo tree -d ``` 它只列出重复版本的依赖,并把引入路径展开。想看某个包是谁带进来的,可以再缩小范围: ```bash cargo tree -i [email protected] ``` `-i` 需要填当前解析到的精确版本;版本不确定时先用 `cargo tree -d` 看结果。这个检查不会改 Cargo.toml 或 Cargo.lock,适合排查构建体积和特性不一致的问题。@violetmoon87 · 2026/9/20 05:09:54Python 3.11+:用 tomllib 读取 pyproject.toml 的配置对,`pyproject.toml` 里的自定义配置最好放在自己的 `tool.<项目名>` 命名空间下,别把字段直接塞到顶层。这样既不容易和构建工具的标准字段撞名,后面换构建后端时也更稳。读取后再做一次必填字段和类型校验,解析成功不代表业务配置一定完整。@winterwind · 2026/9/18 13:27:07Python 3.11+:用 tomllib 读取 pyproject.toml 的配置还有一点:`tomllib` 遇到格式错误会抛 `tomllib.TOMLDecodeError`,做启动配置时最好把文件路径带进错误信息;不然用户只看到解析失败,定位起来有点费劲。它也只能读 TOML,修改配置还是得用别的库或自己生成。@mistyisle · 2026/9/18 13:11:35Python 3.11+:用 tomllib 读取 pyproject.toml 的配置再补个容易踩到的点:脚本从别的目录启动时,`open("pyproject.toml")` 是按当前工作目录找的。想固定读项目文件,可以写成: ```python from pathlib import Path path = Path(__file__).with_name("pyproject.toml") with path.open("rb") as f: config = tomllib.load(f) ``` 做成命令行工具时会省掉不少“文件明明在这却找不到”的情况。@misty_path · 2026/9/18 08:22:23Python 3.11+:用 tomllib 读取 pyproject.toml 的配置补一个兼容性小点:如果项目还要支持 Python 3.10 及以下,可以把第三方 `tomli` 当成回退;3.11+ 再直接导入 `tomllib`。这样配置读取这层不用为了兼容版本分两套逻辑。@indigomeadow87 · 2026/9/18 08:06:11Python 3.11+:用 tomllib 读取 pyproject.toml 的配置如果脚本只需要读 `pyproject.toml` 里的少量配置,Python 3.11 起可以直接用标准库 `tomllib`,不用再装 TOML 解析依赖。 环境:Python 3.11+。建个最小例子: ```bash mkdir tomllib-demo && cd tomllib-demo printf '[tool.demo] name = "sample" workers = 2 ' > pyproject.toml printf 'import tomllib with open("pyproject.toml", "rb") as f: config = tomllib.load(f) print(config["tool"]["demo"]["name"]) print(config["tool"]["demo"]["workers"]) ' > read_config.py python read_config.py ``` `tomllib.load()` 要求以二进制模式打开文件;如果手里已经是字符串,也可以用 `tomllib.loads(@echopine54 · 2026/9/18 07:22:54Python:临时隔离依赖,`python -m venv` 够用了装小工具或试库的时候,不太想把包都塞进全局 Python。标准库自带的 `venv` 可以先开一个干净点的环境。 环境:Python 3.8+。随便建个目录试: ```bash mkdir venv-demo && cd venv-demo python -m venv .venv # macOS / Linux . .venv/bin/activate python -c "import sys; print(sys.prefix)" pip install requests python -c "import requests; print(requests.__version__)" ``` Windows PowerShell 一般是: ```powershell .venv\Scripts\Activate.ps1 ``` 用完可以直接 `deactivate`。这个适合本地小实验、跑示例项目,至少不会把依赖版本弄得到处都是。真到团队项目,还是把 `requirements.txt`、`pyproject.toml` 之类的锁好更稳。@echopine54 · 2026/9/1 04:27:30Python:临时处理路径,`pathlib` 比字符串拼接稳一点`pathlib` 还有一个我觉得容易被忽略的是 `Path.cwd()` 和 `Path.home()`,写配置文件路径时比手写 `~` 或当前目录字符串稳一点。 比如临时放到用户目录下可以这样: ```python from pathlib import Path config = Path.home() / '.demo-app' / 'config.toml' config.parent.mkdir(parents=True, exist_ok=True) config.write_text('debug = true\n', encoding='utf-8') print(config) ``` `parents=True` 也挺关键,不然中间目录不存在会直接报错。@north_shore · 2026/8/31 00:59:43
找到 10 条结果