(社区检测算法)Infomap" make"在Python 2.7中抛出错误

时间:2015-03-30 05:22:15

标签: python-2.7 python-module

我正在尝试将Infomap(社区检测算法)编译为http://www.mapequation.org/code.html#Input中给出的python模块,但最终会出现如下错误 -

\examples\python>make
cd ../.. && make python
Access denied - SRC
File not found - -NAME
Access denied - SRC
File not found - -NAME
Access denied - INTERFACES/SWIG
File not found - -NAME
make[1]: Entering directory `/d/PythonInstallables/Infomap/Third_Trial/mapequation-infomap-55e7e922c554/mapequation-infomap-55e7e922c554'
cp: missing destination file operand after `build/py/'
Try `cp --help' for more information.
make[1]: *** [py-build] Error 1
make[1]: Leaving directory `/d/PythonInstallables/Infomap/Third_Trial/mapequation-infomap-55e7e922c554/mapequation-infomap-55e7e922c554'
make: *** [../../build/py/infomap.py] Error 2

Windows 7上的Python 2.7.7版(64位)。

欢迎任何有关可能出错的线索。 此外,我更喜欢单独使用Infomap而不是通过igraph,因为igraph不提供给定的Infomap链接中列出的高级选项。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:1)

比较您的错误:

Access denied - SRC
File not found - -NAME
Access denied - SRC
File not found - -NAME
Access denied - INTERFACES/SWIG
File not found - -NAME

使用Makefile中的命令:

HEADERS := $(shell find src -name "*.h")
SOURCES := $(shell find src -name "*.cpp")
SWIG_FILES := $(shell find interfaces/swig -name "*.i”)

似乎问题与Windows中的查找实用程序有关(请参阅Find command in windows 7)。

您可能在没有正确安装的类Unix环境或工具的情况下使用Windows。如果可能是这种情况,请尝试安装(或重新安装)MinGW或Cygwin。一种简单的方法是使用自动GUI安装程序助手(请参阅MinGW - Getting Started)并从MinGW安装管理器安装MSYS包。这为您提供了所需的编译器和查找工具。


更新

即使安装了MSYS find实用程序,也必须将其添加到要找到的PATH环境变量中。 MinGW默认不这样做(见链接)。通过打开命令提示符检查PATH中的目录并键入

path

这可能会给你类似的东西

PATH=C:\Windows\system32;C:\Windows;…

问题是system32文件夹中还有另一个find.exe,因此要使Makefile选择正确的查找工具,必须在 system32之前添加包含MSYS查找实用程序的目录在路径中。

假设MSYS的以下位置,您可以通过打开命令提示符并键入

来执行此操作
set path=C:\MinGW\msys\1.0\bin;%PATH%

这将在查找所有其他目录之前设置MSYS查找实用程序的目录(从PATH环境变量扩展)。

注意:

上述解决方案仅更新该会话的路径,因此每次打开新的命令提示符时都必须键入此命令才能编译Infomap。

但不建议首先在系统范围的PATH中永久添加它,因为MSYS实用程序会为具有相同名称的默认Windows实用程序提供影子,如果它们不使用绝对路径,则可能会破坏其他程序。

这就是入门指南写的原因

  

我们希望您使用脚本为per上的进程设置PATH   会话基础。这就是我们不调整PATH的原因。

您可以通过以下方式简化程序:

我的电脑>属性>高级系统设置>环境变量

以下是两个列表,一个是用户变量,另一个是系统变量。在这里,您可以检查和编辑系统范围的PATH变量。但是,创建一个新的用户变量,并使用如下名称和值:

Variable name: USE_MSYS
Variable value: set path=C:\MinGW\msys\1.0\bin;%PATH%

然后,当您需要在命令提示符中使用MSYS实用程序时,只需键入

即可
%USE_MSYS%

作为上述的捷径。

MSYS还提供了自己的shell,其中已经设置了环境变量,但您必须将其配置为查找文件(请参阅有关fstab的链接)。