使用生成文件.am结束setup.py?

2024-04-28 20:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正致力于将一个项目从scons转换为autotools,因为它似乎自动生成了许多在SConscript中编写起来很烦人的特性(例如make uninstall)。在

这个项目主要是基于c++的,但也包括一些用python编写的模块。在阅读了大量的autotools之后,我终于可以创建一个共享库,编译并链接一个可执行文件,并安装c++头文件。很可爱。现在是python部分。通过在配置.ac,我还使用生成文件.am文件,如

autopy_PYTHON=autopy/__init__.py autopy/noindent.py autopy/auto.py submoda_PYTHON=autopy/submoda/moda.py autopy/submoda/modb.py autopy/submoda/modc.py autopy/submoda/__init__.py submodb_PYTHON=autopy/submodb/moda.py autopy/submodb/modb.py autopy/submodb/modc.py autopy/submodb/__init__.py

autopydir=$(pythondir)/autopy submodadir=$(pythondir)/submoda submodbdir=$(pythondir)/submodb

dist_bin_SCRIPTS=scripts/script1 scripts/script2 scripts/script3

这似乎将我所有的模块和脚本放在适当的位置,但我想知道这是否“正确”,因为安装python模块的方法似乎是通过设置.py通过distutils编写脚本。我确实有设置.pypython模块和scons中的脚本一直在调用它们,直到我使用autotools。一种方法优于另一种方法吗?我还应该用吗设置.py当我用自动工具构建时?我想了解人们通常是如何使用自动工具来解析c++python模块的构建的。我还有很多其他自动工具的问题,但我会留着待会儿再说。在


Tags: 模块文件工具项目方法py脚本init
1条回答
网友
1楼 · 发布于 2024-04-28 20:25:30

根据您的描述,我建议您使用生成的configureMakefile,即autoconf和{},并让您的configure或{}负责执行您的setup.py,以便设置Python位。在

<>我有一个项目,主要是C/C++代码,还有Perl模块。这与您要做的非常相似,只是它是Perl而不是Python。在

在我的{{CD2>}(由^ {CD9>}生成)中,我有一个目标执行Perl模块的^ { CD10>},它类似于Python的^ {CD7>},并且以这种方式,将Perl模块与其他C++代码一起无缝地构建为一个单独的构建。效果还不错。在

automake'sMakefile.am是非常开放和灵活的,可以很容易地进行调整和扩展,以合并像这样的外来比特。在

相关问题 更多 >