Python 3.5.2(Ubuntu 16.04 LTS)下安装matplotlib遇问题求助
解决Matplotlib安装与Setuptools权限报错问题
嘿,我来帮你捋清楚这个问题!首先你最初的安装命令里有个小失误——把pip install matplotlib和pip install --upgrade setuptools连在一起写了,导致命令解析错误,这是第一个需要修正的点。接下来咱们一步步解决权限和依赖问题:
1. 先修正初始命令的语法错误
你原本执行的命令是:
sudo env 'PATH=$PATH:/home/lukasz/.local/bin' pip install matplotlibpip install --upgrade setuptools
这里matplotlib后面直接跟了pip,属于语法错误,应该拆成两个独立命令,或者先升级setuptools再安装matplotlib:
# 先升级setuptools sudo env 'PATH=$PATH:/home/lukasz/.local/bin' pip install --upgrade setuptools # 再安装matplotlib sudo env 'PATH=$PATH:/home/lukasz/.local/bin' pip install matplotlib
2. 解决Setuptools升级的权限问题
你遇到的PermissionError是因为直接用sudo修改系统级Python包目录时,缓存文件可能被锁定或者权限异常。这里有几个更靠谱的解决方案:
方案一:用--user参数安装到用户目录(最推荐)
不需要sudo,直接给当前用户安装升级,完全不会触碰系统级目录,避免权限问题:
pip install --upgrade setuptools --user pip install matplotlib --user
安装后的包会放在/home/lukasz/.local/lib/python3.5/site-packages,而你的PATH已经包含了/home/lukasz/.local/bin,后续调用matplotlib不会有任何问题。
方案二:删除报错的缓存文件后重试
如果一定要安装到系统级目录,先手动删除那个被锁定的缓存文件,再重新执行升级命令:
sudo rm /usr/lib/python3/dist-packages/__pycache__/easy_install.cpython-35.pyc sudo env 'PATH=$PATH:/home/lukasz/.local/bin' pip install --upgrade setuptools
方案三:使用Python虚拟环境(长期开发最稳妥)
虚拟环境可以彻底隔离项目依赖,再也不会出现系统包冲突或权限问题:
- 创建一个虚拟环境(放在你喜欢的目录,比如用户根目录):
python3 -m venv ~/my_python_env
- 激活虚拟环境:
source ~/my_python_env/bin/activate
- 此时直接升级setuptools并安装matplotlib,完全不需要sudo:
pip install --upgrade setuptools pip install matplotlib
用完虚拟环境后,执行deactivate就能回到系统默认环境。
3. 验证安装是否成功
不管用哪种方案,安装完成后可以打开Python终端验证:
import matplotlib print(matplotlib.__version__)
如果能正常输出版本号,就说明安装成功啦!
内容的提问来源于stack exchange,提问作者L Pawlak
相关产品推荐
相关产品推荐

