首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安装waf?

如何安装waf?
EN

Stack Overflow用户
提问于 2017-08-22 08:44:20
回答 2查看 12.5K关注 0票数 4

我已经使用以下方法克隆和构建了waf脚本:

代码语言:javascript
复制
./waf-light configure

然后,要构建我的项目(由Gomspace提供),我需要将wafeclipse.py添加到我的路径中。到目前为止,我还没有发现比这个setenv脚本更好的地方:

代码语言:javascript
复制
WAFROOT=~/git/waf/
export PYTHONPATH=$WAFROOT/waflib/extras/:$PYTHONPATH
export PATH=~/git/waf/:$PATH

呼叫:

代码语言:javascript
复制
source setenv

不知何故,这是一个相当丑陋的解决办法。有更优雅的方法来安装waf吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-28 01:42:22

Fedora (至少Fedora 22)有一个用于waf的yum包,所以您可以看到可以安装waf的系统,尽管有黑客攻击。

在运行类似于python3 ./waf-light configure build的内容之后,您将得到一个名为waf的文件,它实际上是一个带有一些二进制数据的Python。如果将其放入/usr/bin并以非根用户的身份运行,您将得到一个错误,因为它无法在/usr/bin中创建一个目录。如果您以root用户的身份运行它,您将得到新的目录,/usr/bin/waf将正常运行。

下面是我在研究waf脚本中的find_lib()函数时学到的技巧。

  1. waf复制到/usr/bin/waf
  2. 作为根用户,运行/usr/bin/waf。注意,它创建了一个目录。你会看到像/usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18这样的东西
  3. mv将目录转到/usr/lib,删除目录名中的.,例如mv /usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18 /usr/lib/waf-2.0.19-b2f63c807a4215294bf6005410c74c18
  4. 如果您想在Python3中使用waf,请重复步骤2-3在Python3下运行Python /usr/bin/waf。在Python3下,目录名将以.waf3-/waf3-开始,而不是.waf-/waf-
  5. (可选)删除/usr/bin/waf末尾的二进制数据。
  6. 现在,非根用户应该能够只使用/usr/bin/waf

尽管如此,这里有一些需要考虑的问题,就像另一个答案说的那样:我相信waf的作者打算将waf嵌入到项目中,这样每个项目就可以使用自己的waf版本,而不必担心当waf的新版本出现时,一个项目将无法构建。因此,一个全局版本的用例似乎没有得到官方的支持。

票数 1
EN

Stack Overflow用户

发布于 2018-01-19 16:14:32

你不安装waf。您找到的命令正确地构建了waf:/waf-light configure build,然后对于您创建的每个项目,将构建的waf脚本放入该项目根目录中。我找不到引用,但这是waf:的主要作者Thomas希望使用该工具的方式。重新打包waf使工具可安装的项目不是“官方批准的”。

非安装有其优点和缺点:

缺点:

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

优势:

  • 新版本的waf是否破坏了旧的API并不重要。
  • 用户在编译项目之前不需要安装waf --在系统上安装Python就足够了。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45812912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档