Gentoo系统中无法为pip启用python_targets_python3_7 USE标志求助
解决Gentoo中emerge dev-python/pip无法启用python_targets_python3_7的问题
首先得揪出你配置里的致命拼写错误:你在/etc/portage/use.stable.mask里写的是-python_targets_pyton3_7——这里把python拼成了pyton!系统根本识别不了这个错误的USE标志,这条规则等于白写,这才是问题的核心原因。
接下来我们一步步修正并完成正确配置:
1. 修正use.stable.mask的拼写问题
直接编辑/etc/portage/use.stable.mask,把错误的行改成正确的:
# 用echo覆盖或编辑器修改都可以 echo "-python_targets_python3_7" > /etc/portage/use.stable.mask echo "-python_single_target_python3_7" >> /etc/portage/use.stable.mask
确保两行里的单词都是python,没有拼写错误。
2. 简化并修正package.use的配置
你在/etc/portage/package.use/dev-python里的配置可以更规范:去掉PYTHON_TARGETS: python3_7这一行(这不是package.use的正确用法,PYTHON_TARGETS是环境变量,不是USE标志),只保留针对pip的USE标志设置即可:
echo "dev-python/pip python_targets_python3_7" > /etc/portage/package.use/dev-python/pip
这样Portage就能明确知道要给pip启用python3.7的target。
3. 检查全局PYTHON_TARGETS(可选)
如果你的/etc/portage/make.conf里全局设置了PYTHON_TARGETS="python2_7 python3_6",这会默认覆盖局部的package.use设置。这种情况下有两种解决方式:
- 直接在make.conf里添加python3_7:
PYTHON_TARGETS="python2_7 python3_6 python3_7",这样全局都支持python3.7 - 单独给pip设置环境变量:创建
/etc/portage/package.env/dev-python/pip,写入PYTHON_TARGETS="python3_7",这样只有pip会用python3.7的target
4. 重新执行emerge
最后让Portage重新读取配置并更新pip:
emerge -avU dev-python/pip
现在你再看输出的PYTHON_TARGETS,应该已经包含python3_7了。
另外别忘了确认系统已经安装了python3.7,如果还没装,先执行:
emerge -av dev-lang/python:3.7
内容的提问来源于stack exchange,提问作者tamynasa
相关产品推荐
相关产品推荐

