如何安装waf?

时间:2017-08-22 08:44:20

标签: waf

我使用以下方法克隆并构建了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?

2 个答案:

答案 0 :(得分:3)

你没有安装waf。您找到的命令正确构建waf:gdbus然后,对于您创建的每个项目,将构建的/waf-light configure build脚本放入该项目的根目录中。我找不到参考,但这是waf的主要作者Thomas Nagy想要使用该工具的方式。重新包装waf以使该工具可安装的项目不是“官方认可的”。

非安装有优点和缺点:

缺点:

  • 您必须将半二进制100kb大waf文件添加到存储库。
  • 由于该文件包含二进制代码,因此人们可能会有法律意见来分发它。

优点:

  • 新版本的waf是否会破坏旧的API无关紧要。
  • 在编译项目之前,用户不需要安装waf - 在系统上安装Python就足够了。

答案 1 :(得分:1)

Fedora(至少是Fedora 22)具有用于waf的yum软件包,因此您可以看到有可能进行waf的系统安装,尽管有黑客。

运行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
  2. 以root身份运行/usr/bin/waf。注意,它创建了一个目录。您会看到类似/usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18
  3. 的内容
  4. 将该目录移动到/ usr / lib,并在目录名称中添加.,例如mv /usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18 /usr/lib/waf-2.0.19-b2f63c807a4215294bf6005410c74c18
  5. 如果要在Python3中使用waf,请重复步骤2-3,在Python3下运行Python脚本/usr/bin/waf。在Python3下,目录名将以.waf3- / waf3-开头,而不是.waf- / waf-
  6. (可选)在/usr/bin/waf的末尾删除二进制数据。
  7. 现在,非root用户应该只能使用/usr/bin/waf

也就是说,这里需要考虑一些问题,就像另一个答案所说的那样:我相信waf的作者打算将waf嵌入到项目中,以便每个项目都可以使用自己的waf版本,而不必担心项目在那里会失败。是waf的较新版本。因此,似乎没有正式支持一个全球版本的用例。