Python 用户站点包已禁用 | AI生成和翻译

Home 2025.11

该软件包已安装在您的用户目录中(~/.local/lib/python3.13/site-packages),但当您运行 python3 ./scripts/train/extract_wiki.py 时,Python 由于某些原因未在用户的 site-packages 目录中查找

这是许多 Linux 发行版(Ubuntu 22.04/24.04、Debian、Arch 等)上 Python 3.11+ 版本中一个非常常见的问题,因为默认的 python3 通常设置了环境变量 PYTHONNOUSERSITE=1 或系统包管理器启用了 -I(隔离)标志,这会完全禁用用户的 site-packages 路径

快速验证问题的方法

运行以下两个命令:

python3 -c "import sys, pathlib; print('user site:', pathlib.Path(sys.path[-1]).resolve() if 'site-packages' in sys.path[-1] else 'DISABLED')"
python3 -c "import site; print(site.ENABLE_USER_SITE)"

如果您看到 DISABLEDFalseNone,那正是问题所在。

解决方案(选择一种)

选项 1 – 使用 python3 -m pip 并用相同的 Python 运行(推荐)

# 始终使用模块形式,以确保您知道安装到哪个 Python 环境
python3 -m pip install --user --upgrade mediawiki-dump

# 然后用相同的 Python 运行脚本
python3 ./scripts/train/extract_wiki.py

如果仍然失败,强制启用用户站点:

python3 -s ./scripts/train/extract_wiki.py
# 或
PYTHONNOUSERSITE=0 python3 ./scripts/train/extract_wiki.py

选项 2 – 使用虚拟环境(最佳实践)

cd /home/lzw/projects/blog-source
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install mediawiki-dump   # 将安装到虚拟环境中,无权限问题
python ./scripts/train/extract_wiki.py   # 现在肯定能找到它

选项 3 – 强制永久启用用户站点(不推荐用于系统 Python)

将此添加到您的 ~/.bashrc~/.zshrc

export PYTHONNOUSERSITE=

或创建 ~/.config/pythonstartup.py 并写入:

import site
import os
os.environ["PYTHONNOUSERSITE"] = ""

快速单行测试

在当前 shell 中运行:

python3 -s -c "from mediawiki_dump.tokenizer import WikiTokenizer; print('Works!')"

如果输出“Works!”,那么只需始终使用 python3 -s 或创建虚拟环境即可解决问题。

建议采用虚拟环境方案(选项 2)——这将避免您在使用其他软件包时遇到无休止的麻烦。如果之后遇到任何新错误,请告诉我!


Back

x-ai/grok-4-fast

Donate