如何在 linux-64 上为 Anaconda Python 3.5 安装图形工具?

How to install graph-tool for Anaconda Python 3.5 on linux-64?

我正在尝试在 Ubuntu 14.04 (x64) 上为 Anaconda Python 3.5 安装图形工具,但事实证明这是一个真正的技巧。

我试过,但是运行进入问题:

The following specifications were found to be in conflict:
  - graph-tool
Use "conda info <package>" to see the dependencies for each package.

挖掘依赖关系导致 gobject-introspection 陷入死胡同

所以我尝试了另一种方法:

使用 conda 安装了 boost,然后尝试 ./configure、make 和 make install graph-tool... 直到 ./configure:

===========================
Using python version: 3.5.2
===========================
checking for boostlib >= 1.54.0... yes
checking whether the Boost::Python library is available... yes
checking whether boost_python is the correct library... no
checking whether boost_python-py27 is the correct library... no
checking whether boost_python-py27 is the correct library... (cached) no
checking whether boost_python-py27 is the correct library... (cached) no
checking whether boost_python-py35 is the correct library... yes
checking whether the Boost::IOStreams library is available... yes
configure: error: Could not link against boost_python-py35 !

我知道这是关于 ./configure 命令的环境变量和 conda 将 libboost 安装到 Anaconda 的奇怪地方,我只是不知道该怎么做,我的 Google-fu 让我失望了.所以这是另一个死胡同。

最近在 linux-64 中必须安装 graph-tool 的人可以给我一个演练吗?这是 VMWare Workstation 10.0.7

中的新虚拟机 运行ning

对于那些 运行 遇到类似问题的人,请先尝试更改 conda 通道的顺序:

$ conda config --add channels ostrokach

$ conda config --add channels defaults

$ conda config --add channels conda-forge

然后:

$ conda install graph-tool

正在为 Anaconda 安装 graph-tool 2.26 Python 3.5,Ubuntu 14.04。

注意:在我撰写本文时,graph-tool 的 ostrokach 频道 conda 安装只有 2.18 版。

这是我用来安装 graph-tool 2.26 的 docker 文件。可能有更简洁的方法,但到目前为止,这是我拼凑出来的唯一有效的方法。

注意:如果您不熟悉 docker 文件并且只想从终端进行安装,请忽略第一行(以 FROM 开头),忽略每个出现的单词 运行,剩下的就是在终端中执行的一系列命令。

FROM [your 14.04 base image]

RUN conda upgrade -y conda
RUN conda upgrade -y matplotlib

RUN \
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
apt-get update -y && \
apt-get install -y gcc-5 g++-5 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

RUN wget https://github.com/CGAL/cgal/archive/releases/CGAL-4.10.2.tar.gz && \
tar xzf CGAL-4.10.2.tar.gz && \
cd cgal-releases-CGAL-4.10.2/ && \
cmake . && \
make && \
make install

RUN cd /tmp && \
# note: master branch of repo appears relatively stable, has not been updated since 2016
git clone https://github.com/sparsehash/sparsehash.git && \
cd sparsehash && \
./configure && \
make && \
make install

RUN apt-get update
RUN apt-get install -y build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev
RUN apt-get install -y autogen autoconf libtool shtool

# install boost
RUN cd /tmp && \
wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz && \
tar xzvf boost_1_66_0.tar.gz && \
cd boost_1_66_0 && \
sudo ./bootstrap.sh --prefix=/usr/local && \
sudo ./b2 && \
sudo ./b2 install

# install newer cairo
RUN cd /tmp && \
wget https://cairographics.org/releases/cairo-1.14.12.tar.xz && \
tar xf cairo-1.14.12.tar.xz && \
cd cairo-1.14.12 && \
./configure && \
make && \
sudo make install

RUN cd /tmp && \
wget https://download.gnome.org/sources/libsigc++/2.99/libsigc++-2.99.10.tar.xz && \
tar xf libsigc++-2.99.10.tar.xz && \
cd libsigc++-2.99.10 && \
./configure && \
make && \
sudo make install && \
sudo cp ./sigc++config.h /usr/local/include/sigc++-3.0/sigc++config.h

RUN cd /tmp && \
wget https://www.cairographics.org/releases/cairomm-1.15.5.tar.gz && \
tar xf cairomm-1.15.5.tar.gz && \
cd cairomm-1.15.5 && \
./configure && \
make && \
sudo make install && \
sudo cp ./cairommconfig.h /usr/local/include/cairomm-1.16/cairomm/cairommconfig.h

RUN conda install -y -c conda-forge boost pycairo
RUN conda install -y -c numba numba=0.36.2

RUN conda install -y -c libboost py-boost && \
conda update -y cffi dbus expat pycairo pandas scipy numpy harfbuzz setuptools boost

RUN apt-get install -y apt-file dbus libdbus-1-dev && \
apt-file update

RUN apt-get install -y graphviz
RUN conda install -y -c conda-forge python-graphviz

RUN sudo apt-get install -y valgrind

RUN apt-get install -y libcgal-dev libcairomm-1.0 libcairomm-1.0-dev libcairo2-dev python-cairo-dev

RUN conda install -y -c conda-forge pygobject
RUN conda install -y -c ostrokach gtk

RUN cd /tmp && \
wget https://git.skewed.de/count0/graph-tool/repository/release-2.26/archive.tar.bz2 && \
bunzip2 archive.tar.bz2 && \
tar -xf archive.tar && \
cd graph-tool-release-2.26-b89e6b4e8c5dba675997d6f245b301292a5f3c59 && \
# Fix problematic parts of the graph-tool configure.ac file
sed -i 's/PKG_INSTALLDIR/#PKG_INSTALLDIR/' ./configure.ac && \
sed -i 's/AM_PATH_PYTHON(\[2\.7\])/AM_PATH_PYTHON(\[3\.5\])/' ./configure.ac && \
sed -i 's/${PYTHON}/\/usr\/local\/anaconda3\/bin\/python/' ./configure.ac && \
sed -i '$a ACLOCAL_AMFLAGS = -I m4' ./Makefile.am && \
sudo ./autogen.sh && \
sudo ./configure CPPFLAGS="-I/usr/local/include -I/usr/local/anaconda3/pkgs/pycairo-1.15.4-py35h1b9232e_1/include -I/usr/local/include/cairo -I/usr/local/include/sigc++-3.0 -I/usr/include/freetype2" \
    LDFLAGS="-L/usr/local/include -L/usr/local/lib/cairo -L/usr/local/include/sigc++-3.0 -L/usr/include/freetype2" \
    PYTHON="/usr/local/anaconda3/bin/python" \
    PYTHON_VERSION=3.5 \
sudo make && \
sudo make install

警告:makeing graph-tool 可能需要几个小时,并且需要 >7 GB 的内存。