我已经成功安装了 numpy,现在我正在尝试安装 matplotlib。我正在按照以下网站上的步骤操作:
http://matplotlib.org/faq/installing_faq.html#source-install-from-git
错误发生在以下命令之后:
python setup.py install
这里是错误:
Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
error: can't create or remove files in install directory '
The following error occurred while trying to add or remove files in the installation directory:
[Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-24752.pth'
The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was:
/usr/local/lib/python2.7/dist-packages/
我在我的机器上担任管理员并且(我认为)拥有所有读/写文件的权限:
administrator@ubuntu:/usr/local/lib/python2.7/dist-packages$ ll -a
total 8
drwxrwsr-x 2 root staff 4096 Aug 20 2013 ./
drwxrwsr-x 4 root staff 4096 Mar 9 11:04 ../
问题是什么,我该如何解决?
最佳答案
I am working as the administrator on my machine and (I think) have all the rights to read/write files
这确实是一个更适合 SuperUser 的讨论,但问题是作为“管理员”并不真正意味着你认为的那样。在这一行中:
drwxrwsr-x 2 root staff 4096 Aug 20 2013 ./
root
是目录的所有者,最后的r-x
表示其他用户只允许读和执行,不能写这个目录(见here更多详情)。
你能做什么?
以
root
身份运行安装命令,例如$ sudo python setup.py 安装
。这是不推荐的!以这种方式安装系统范围的 Python 模块的问题是其他包管理器(例如apt-get
)完全没有注意到在这样,往往会导致对其他系统包的依赖关系出现困惑。从 Ubuntu 存储库安装软件包,即
$ sudo apt-get install python-matplotlib
。这可能是安装 matplotlib 的最简单方法,并且不太可能破坏任何依赖关系。但是,Ubuntu 存储库往往包含大多数 Python 包的较旧版本。将其安装到
virtualenv
中。这是安全的,因为它不会影响全局site-packages
中的任何内容,并且它允许您安装最新的前沿版本。然而,将 matplotlib 安装到virtualenv
中可能会很棘手,因为 matplotlib 有很多通常需要在系统范围内安装的后端依赖项。要解决此问题,您可以:a) 使用
--system-site-packages
标志创建您的virtualenv
。使用此选项,如果 Python 尝试导入
一个未本地安装在virutalenv
的site-packages
目录中的模块,它将然后查看系统范围的site-packages
。这意味着您可以在virtualenv
中本地安装 matplotlib,它会在系统范围的site-packages
中找到它的所有后端依赖项。不利的一面是,如果您在本地和系统范围内安装了相同的模块,则必须更加小心实际导入的版本。b) 使用
--no-site-packages
标志创建您的virtualenv
,然后在您的系统范围站点中创建指向所需模块的符号链接(symbolic link)-packages
目录。 This blog article 提供了一组很好的说明,用于使用符号链接(symbolic link)在virtualenv
中安装 matplotlib。这种方法比较棘手,但优点是您的virtualenv
(几乎!)完全独立,并且毫无疑问您的模块import
是从哪里来的来自。
关于python - 在 linux 中安装 matplotlib 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23629898/