![](/img/trans.png)
[英]pip install fuse-python: pkg-config unavailable, build terminated
[英]pip install matplotlib: "no pkg-config"
当我运行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
?
sudo apt-get build-dep python-matplotlib
在 Mac OS 上:我使用which pkg-config
来检查安装。 如果没有,请使用 brew 安装,它可以工作:
brew install pkg-config
只需安装 freetype 字体即可获得 matplotlib。
sudo apt-get install freetype*
所有 matplotlib 文件都安装到 /usr/local/lib/python2.7/site-packages/。 即使你想使用 pip installer 安装,你也需要修复 freetype 字体问题,这可以按照上面说的来完成。
我不能问你的具体问题,但我的 pip install matplotlib 前几天看起来很像你的。 在将我的头撞在墙上五个小时后,这个解决方案对我有用(来自practicecomputing.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 有所帮助。
老问题,但想留下一些可能有用的面包屑。
在尝试手动安装依赖于在 virtualenv 中手动安装的一组 Python 绑定的应用程序后,我刚刚在 Ubuntu 12.04 上处理了一个有点类似的问题。 Python 绑定显然安装在我的 virtualenv 中的适当位置,但安装程序根本无法使用pkg-config
找到它们。
所以要回答原来的问题:
pkg-config
就好了; 它只是没有检测到freetype2
和libpng
任何有用信息。python-qt4
并创建一个启用了--system-site-packages
的 virtualenv 应该会让 matplotlib 高兴,即使这意味着用模块乱扔你的全局环境。 但是在尝试在 virtualenv 中安装 PyQt4 或 python-qt 时,我无法让 pip 做任何有用的事情。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
脚本。
PATH
之前,您几乎可以复制维护_OLD_VIRTUAL_PATH
的现有代码,并在停用时恢复到_OLD_VIRTUAL_PATH
PKG_CONFIG_PATH
一开始是空白的,您需要更多的逻辑来确保它在停用时被清除我有一个几乎相同的错误。 我进一步查看了错误,似乎问题出在 freetype2 上。
我在使用 freetype 的其他软件包中也遇到过类似的令人沮丧的问题。 对我来说,编译错误来自以下内容:
/usr/local/include/ freetype2 /freetype/*.h 是 freetype 文件。
/usr/local/include 是搜索目录。
-Ifreetype/*.h 是传递给编译器的标志。
问题很微妙,但我能够通过复制 /usr/local/include/freetype2/freetype -> /usr/local/include/freetype 来编译 matplotlib(老实说,这几乎是我真正关心的所有内容)。
希望这会帮助任何偶然发现此问题的人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.