当我运行pip install matplotlib
(在virtualenv中)时,第一行输出是:
Downloading/unpacking matplotlib
Running setup.py egg_info for package matplotlib
basedirlist is: ['/usr/local/', '/usr', '/usr/X11', '/opt/local']
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.2.0
python: 2.7.3 (default, Dec 14 2012, 13:31:05) [GCC 4.2.1
(Apple Inc. build 5666) (dot 3)]
platform: darwin
REQUIRED DEPENDENCIES
numpy: 1.6.2
freetype2: found, but unknown version (no pkg-config)
OPTIONAL BACKEND DEPENDENCIES
libpng: found, but unknown version (no pkg-config)
Tkinter: Tkinter: 81008, Tk: 8.5, Tcl: 8.5
Gtk+: no
* Building for Gtk+ requires pygtk; you must be able
* to "import gtk" in your build/install environment
Mac OS X native: yes
Qt: no
Qt4: no
PySide: no
Cairo: no
<snip>
注意
首先,与上面输出的内容相反,pkg-config
实际上是并且安装在PATH
上:
% pkg-config --version
0.27.1
% which pkg-config
/usr/local/bin/pkg-config
其次,qt
位于找到freetype
和libpng
的同一目录中:
% ls -l /usr/local/opt/{freetype,libpng,qt} | cut -c43-
/usr/local/opt/freetype -> ../Cellar/freetype/2.4.10/
/usr/local/opt/libpng -> ../Cellar/libpng/1.5.13/
/usr/local/opt/qt -> ../Cellar/qt/4.8.4/
我的问题有三个部分:
pip install matplotlib
在哪里获得basedirlist
(上面输出的第3行)?- 我必须采取哪些不同的做法,以便
pip install matplotlib
找到pkg-config
?- 我必须采取哪些不同的做法,以便
醇>pip install matplotlib
找到qt
?
答案 0 :(得分:11)
sudo apt-get build-dep python-matplotlib
答案 1 :(得分:6)
只需安装freetype字体即可获取matplotlib。
sudo apt-get install freetype*
所有matplotlib文件都安装在/usr/local/lib/python2.7/site-packages/中。即使您想使用pip安装程序进行安装,也需要修复freetype字体问题,这可以按照上述说明进行。
答案 2 :(得分:1)
我不能问你具体的问题,但是我的pip安装matplotlib看起来很像你的。经过五个小时的撞击我的头后,这个解决方案对我有用(来自practicalcomputing.org
我有这组命令来设置simlinks:
sudo mkdir -p /usr/local/include
sudo ln -s /usr/X11/include/freetype2/freetype /usr/local/include/freetype
sudo ln -s /usr/X11/include/ft2build.h /usr/local/include/ft2build.h
sudo ln -s /usr/X11/include/png.h /usr/local/include/png.h
sudo ln -s /usr/X11/include/pngconf.h /usr/local/include/pngconf.h
sudo ln -s /usr/X11/include/pnglibconf.h /usr/local/include/pnglibconf.h
sudo mkdir -p /usr/local/lib
sudo ln -s /usr/X11/lib/libfreetype.dylib /usr/local/lib/libfreetype.dylib
sudo ln -s /usr/X11/lib/libpng.dylib /usr/local/lib/libpng.dylib
它并没有完全解决你的所有问题,但它解决了我的pkg-config问题(以及其他问题)。也许类似的链接有助于QT。
答案 3 :(得分:1)
老问题,但想留下一些可能有用的面包屑。
在尝试手动安装依赖于在virtualenv中手动安装的一组Python绑定的应用程序之后,我刚刚在Ubuntu 12.04上处理了一个类似的问题。 Python绑定显然安装在virtualenv中的适当位置,但安装程序根本找不到pkg-config
。
所以回答原来的问题:
pkg-config
就好了;它只是没有检测到freetype2
和libpng
。python-qt4
并创建启用了--system-site-packages
的virtualenv应该让matplotlib感到高兴,即使这意味着用模块乱丢你的全球环境。但是当我尝试在virtualenv中安装PyQt4或python-qt时,我无法获得任何有用的东西。libqt4-dev
也应该减轻任何依赖性问题。man pkg-config
在大多数系统上,pkg-config在/ usr / lib / pkgconfig,/ usr / share / pkgconfig,/ usr / local / lib / pkgconfig和/ usr / local / share / pkgconfig中查找这些文件。它还将查看由PKG_CONFIG_PATH环境变量指定的以冒号分隔的(在Windows上,以分号分隔的)目录列表。
pkg-config
正在寻找* .pc文件;您发现某些依赖项安装在某处的事实并不意味着pkg-config
会在这些目录中找到任何* .pc文件。PKG_CONFIG_PATH
。bin/activate
脚本。
_OLD_VIRTUAL_PATH
之前复制维护PATH
的现有代码,并在停用时还原为_OLD_VIRTUAL_PATH
PKG_CONFIG_PATH
一开始就是空白,则需要更多逻辑以确保在停用时清除它
答案 4 :(得分:1)
对我来说(Mac OS),我使用which pkg-config
检查安装。如果没有,请使用brew安装并起作用:
brew install pkg-config
答案 5 :(得分:0)
我有一个几乎相同的错误。我进一步查看了错误,似乎问题出在freetype2上。
对于使用freetype的其他软件包,我遇到过类似的令人沮丧的问题。对我来说,编译错误来自以下内容:
/ usr / local / include / freetype2 / freetype / * .h是freetype文件。
/ usr / local / include是搜索目录。
-Ifreetype / * .h是传递给编译器的标志。
这个问题很微妙,但我能够通过复制/ usr / local / include / freetype2 / freetype - &gt;来编译matplotlib(老实说,这几乎是我真正关心的)。的/ usr /本地/包含/ freetype的。
希望这可以帮助任何偶然发现的人!