树莓派3+Matrix Creator环境下无法升级argparse至1.4.0求助
我来帮你搞定这个在树莓派3+Matrix Creator环境下的argparse版本冲突问题,这在virtualenv里其实是个挺常见的小坑,咱们一步步来解决:
第一步:确认virtualenv是否正确激活
首先先确保你当前确实处于激活的virtualenv环境中,有时候环境没激活会导致操作不生效。执行以下命令检查:
which python which pip
输出的路径应该指向你的virtualenv目录(比如/home/pi/ga/bin/python和/home/pi/ga/bin/pip),如果显示的是系统路径(比如/usr/bin/python),说明环境没激活,先执行source /home/pi/ga/bin/activate激活环境。
第二步:强制在virtualenv中安装指定版本的argparse
系统自带的argparse位于/usr/lib/python2.7,属于系统文件无法卸载,但我们可以让virtualenv优先使用我们安装的新版本。执行以下命令:
pip install --ignore-installed argparse==1.4.0
这个命令会忽略已有的系统安装,直接将1.4.0版本的argparse安装到你的virtualenv的site-packages目录下,这样Python运行时会优先加载这个版本,而不是系统的旧版本。
第三步:验证argparse版本是否正确
激活环境后进入Python交互模式,验证版本:
import argparse print(argparse.__version__)
如果输出是1.4.0,说明安装成功了,此时再重新执行Google Assistant的安装命令:
python -m pip install --upgrade google-auth-oauthlib[tool]
应该就不会再出现版本冲突的提示了。
备选方案:切换到Python3环境(更推荐)
从你的日志看,当前用的是Python2环境,而Python3中argparse是内置的,版本本身就满足>=1.4.0的要求,完全可以避免这个问题。你可以创建一个基于Python3的virtualenv:
# 创建新的Python3虚拟环境 virtualenv --no-site-packages --python=python3 ga-py3 # 激活环境 source ga-py3/bin/activate # 重新安装Google Assistant相关依赖 python -m pip install --upgrade google-auth-oauthlib[tool]
这样从根源上避免了Python2的argparse版本问题,而且Google Assistant SDK对Python3的支持也更好。
内容的提问来源于stack exchange,提问作者dev-1000

