python 如何安装waf?

xghobddn  于 2023-11-16  发布在  Python
关注(0)|答案(2)|浏览(181)

我使用以下命令克隆并构建了waf脚本:

./waf-light configure

字符串
然后,为了构建我的项目(由Gomspace提供),我需要将wafeclipse.py添加到我的路径中。到目前为止,我还没有找到比setenv更好的脚本:

WAFROOT=~/git/waf/
export PYTHONPATH=$WAFROOT/waflib/extras/:$PYTHONPATH
export PATH=~/git/waf/:$PATH


致电:

source setenv


这是一个相当丑陋的解决方案。有没有更优雅的方式来安装waf?

fnatzsnv

fnatzsnv1#

你没有安装waf。你找到的命令正确地构建了waf:/waf-light configure build然后对于你创建的每个项目,你把构建的waf脚本放到该项目的根目录中。我找不到参考,但这是waf:s的主要作者托马斯纳吉希望使用该工具的方式。重新打包waf以使工具可安装的项目不是“官方认可的”。
不安装有优点和缺点:
缺点:

  • 您必须将半二进制的100 kb大小的waf文件添加到存储库中。
  • 因为文件包含二进制代码,人们可能会对分发它有法律的异议。

优点:

  • 如果新版本的waf破坏了旧的API,这并不重要。
  • 用户在编译项目之前不需要安装waf--系统上有Python就足够了。
33qvvth1

33qvvth12#

Fedora(至少Fedora 22)有一个waf的yum包,所以你可以看到它可以做一个waf的系统安装,尽管有一个hack。
在运行类似python3 ./waf-light configure build的程序后,你会得到一个名为waf的文件,它实际上是一个Python脚本,末尾有一些二进制数据。如果你把它放入/usr/bin并以非root身份运行,你会得到一个错误,因为它无法在/usr/bin中创建一个目录。如果你以root身份运行它,你会得到一个新的目录,/usr/bin/waf正常运行。
下面是我在检查waf Python脚本中的find_lib()函数时学到的技巧。
1.将waf复制到/usr/bin/waf
1.以root身份运行/usr/bin/waf。注意,它创建了一个目录。
1.将目录mv到/usr/lib,删除目录名中的.,例如mv /usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18 /usr/lib/waf-2.0.19-b2f63c807a4215294bf6005410c74c18
1.如果你想在Python 3中使用waf,重复步骤2-3,在Python 3下运行Python脚本/usr/bin/waf。在Python 3下,目录名将以.waf3-/waf3-而不是.waf-/waf-开头。
1.删除/usr/bin/waf末尾的二进制数据。
1.现在,非root用户应该可以使用/usr/bin/waf
也就是说,这里有一些东西需要考虑,就像另一个答案所说的:我相信waf的作者希望waf嵌入到项目中,这样每个项目都可以使用自己的waf版本,而不用担心当有新版本的waf时项目会无法构建。

相关问题