MacOS High Sierra下Python 3.6无法使用已安装的ics包求助
看起来你遇到了pip安装路径和Python运行环境不匹配的典型问题——虽然pip3提示包已经装好了,但你的Python 3.6实例根本找不到它。咱们一步步排查解决:
第一步:确认Python 3.6的包搜索路径
先搞清楚你的Python 3.6到底在哪些目录下查找第三方包。在终端运行:
python3.6 -c "import sys; print('\n'.join(sys.path))"
检查输出里有没有这两个关键路径:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages(你用pip3安装ics的位置)- 如果使用了
--user参数,还要确认~/Library/Python/3.6/lib/python/site-packages是否在列表中
如果这两个路径都没出现在输出里,说明Python 3.6没把这些目录纳入包搜索范围。
第二步:验证pip3和Python 3.6的对应关系
Mac系统经常会同时安装多个Python版本,pip3可能绑定的不是你想用的3.6版本。运行下面的命令查看pip3对应的Python版本:
pip3 --version
如果输出里显示的不是Python 3.6,说明你当前用的pip3属于另一个Python版本(比如3.7或更高)。这种情况下,你需要直接用Python 3.6自带的pip工具来安装,确保包装到正确的位置:
python3.6 -m pip install --user ics
这条命令会强制调用Python 3.6的pip,把包安装到它能识别的路径中。
第三步:确认你调用的是正确的Python版本
有时候你以为自己在运行Python 3.6,但终端里的python3命令可能指向了其他版本。先检查python3对应的路径:
which python3
如果输出不是/Library/Frameworks/Python.framework/Versions/3.6/bin/python3,那下次运行脚本时要明确用python3.6来启动,而不是python3。
第四步:手动添加包路径(备选方案)
如果上面的方法都不行,你可以手动把ics所在的目录添加到Python的搜索路径里。在Python脚本开头加上:
import sys sys.path.append("/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages")
或者把这个路径加到PYTHONPATH环境变量中,这样每次启动Python 3.6都会自动加载:
echo 'export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages:$PYTHONPATH"' >> ~/.bash_profile source ~/.bash_profile
按这个流程操作,应该就能让Python 3.6顺利找到你安装的ics包了。
内容的提问来源于stack exchange,提问作者Wouter Goossens

