在python subprocess.call(["./configure"])
文件中使用subprocess.call(["make"])
然后setup.py
时,为什么autotools会查找错误版本的automake?我们打电话给:
$ python setup.py install
....
WARNING: 'automake-1.13' is missing on your system.
You should only need it if you modified 'Makefile.am' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'automake' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>
答案 0 :(得分:2)
简答:用AM_MAINTAINER_MODE
关闭--disable-maintainer-mode
。
答案很长:尽管版本不同,但它不应该出错,因为它在命令行上运行正常。 Python打包过程中的一些东西正在干扰。
当你这样做时
$ python setup.py sdist
setuptools
模块创建硬链接,从中创建tar存档,然后删除硬链接。在此链接过程中,文件的时间戳已被修改,并且与原始修改时间不匹配,从而产生了一些源文件已被修改的错觉。
运行Makefile时,会注意到时间戳差异。如果启用了AM_MAINTAINER_MODE
,则会运行missing
脚本。然后,此脚本会检测aclocal版本的差异,导致make
出错。
将--disable-maintainer-mode
选项传递给configure脚本应该禁止调用missing
脚本并允许构建成功:
subprocess.call(["./configure", "--disable-maintainer-mode"])
subprocess.call(["make"])
(有关automake的维护者模式的更多信息,请参阅here。显然,时间戳业务也是CVS用户的问题。)