问题标签 [waf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1332 浏览

waf - 如何在 Waf 中检查指定的头文件?

我正在使用 waf 构建一个 C 程序。我想在配置阶段检查是否存在特定的头文件。有没有办法做到这一点?

0 投票
2 回答
1296 浏览

python - 如何在不安装的情况下将 Python 扩展模块打包为可加载的蛋?

我正在修改我们的构建脚本以基于出色的 Waf 工具(我确实使用 SCons 很长时间了,但它太慢了)

无论如何,我遇到了以下情况,我找不到解决办法:

  • 我有一个依赖于许多先前构建的 egg 文件的产品。
  • 我正在尝试使用PyInstaller打包产品作为构建过程的一部分。
  • 我首先构建依赖项。
  • 接下来我要运行 PyInstaller 来打包依赖于我构建的鸡蛋的产品。我需要 PyInstaller 能够在打包过程中加载这些 egg 文件。

这听起来很简单:您计算出PYTHONPATH应该是什么,构建sys.environ正确设置变量的副本,然后使用subprocess.Popen传递先前配置的环境作为 env 参数来调用 PyInstaller 脚本。

问题是,PYTHONPATH如果您添加的鸡蛋是打包为 zipsafe 的扩展模块,那么单独设置似乎是不够的。在这种情况下,事实证明嵌入式库无法导入。

如果我解压缩鸡蛋(将目录重命名为 .egg),我可以在没有进一步设置的情况下导入它们,但在这种情况下这不是我想要的。

我还可以通过执行以下操作从子外壳中导入鸡蛋:

  • 设置PYTHONPATH为包含您要导入的鸡蛋的目录(不是鸡蛋本身的路径)
  • 加载一个 python shell 并使用pkg_resources.require它来定位鸡蛋。

完成此操作后,鸡蛋将正常加载。同样,这不切实际,因为我需要能够以准备好从关闭导入这些鸡蛋的方式运行我的 python shell。

肮脏的选择是在调用真正的目标脚本之前输出一个执行上述操作的包装脚本,但这似乎是错误的做法:必须有更好的方法来做到这一点。

0 投票
1 回答
3173 浏览

windows - 如何在 win32 上调试文件系统“拒绝访问”错误?

我现在正在使用我们的构建脚本度过一段地狱般的时光:我正在使用Waf来驱动我们的构建过程,并且一切正常,除了在 Windows 上,我在构建过程中遇到间歇性错误。

这些错误基本上都是一种或另一种形式的“拒绝访问”错误,与我在构建过程中创建的临时文件有关,以使某些工具能够运行并完成工作。例如,在运行NSIS以生成可执行安装程序之前,我必须将所有必需的文件“暂存”到构建目录并从那里运行命令。有时事情会按预期工作,但有时我会收到有关我复制的文件之一的错误报告,例如:

File: failed opening file "Platform\\Win32\\lxml-2.2.1-py2.6-win32.egg

我花了很长时间试图找出问题所在,但这真的很困难,因为问题是间歇性的。我尝试的最后一件事是使用procmon来监视文件系统访问以尝试跟踪导致访问错误的原因:我知道文件在那里,所以它一定是某些东西打开了文件。我在下面包含了相关输出,因为我看不出有什么问题:Python 似乎在 NSIS 想要打开文件之前关闭了文件,但随后 NSIS 失败了。任何人都可以对此有所了解吗?此问题不仅限于这种情况,而且还涉及我生成子进程以处理我复制到构建目录的文件的其他情况......

0 投票
3 回答
1957 浏览

eclipse - 将外部构建工具集成到 Eclipse 中的最佳方法是什么?

我刚刚开始使用 Eclipse 进行 Python 开发,因为我们可以使用我发现的一个可爱的插件来启用分布式结对编程。无论如何,让 Eclipse 与我们现有环境正确集成的下一步是找到一种方法来从 IDE中驱动我们当前的构建工具 ( Waf )。

所以问题是,有没有一种方法可以设置 Eclipse 以类似方式驱动 Waf Make?我看到Make它有一些非常先进的功能,例如能够计算出可用的目标等。告诉我是否有办法可以做到这一点的奖励积分!(我怀疑答案是这一切都内置在 Ecplipse 的 Make 插件中)。

0 投票
2 回答
5398 浏览

python - 如何使用 Python 在 Windows 命令提示符下使用颜色?

我正在尝试修补一个waf 问题,在该问题中,Windows 命令提示符输出在应有的情况下没有着色。我试图弄清楚如何实际实施此补丁,但我无法找到足够的资源 - 有人能指出我正确的方向吗?

更新 1

请不要提出任何需要 Cygwin 的建议。

0 投票
2 回答
1188 浏览

java - 有人用 waf 构建 Java 应用程序吗?

有没有人成功使用waf 构建 java 应用程序?最好在 Jython 上?也许与常春藤整合?

0 投票
2 回答
7368 浏览

c - 如何使用 waf 构建共享库?

我想使用waf构建一个共享库,因为它看起来比 GNU autotools 更容易且更简洁。

到目前为止,我实际上有几个与我开始编写的 wscript 相关的问题:

包含的行source = '*.c'不起作用。我必须指定每个 .c 文件而不是使用通配符吗?

例如,如何启用调试构建(当前 wscript 正在使用调试构建 CFLAGS,但我想让最终用户可以选择)。

计划库源位于子目录中,使用该库的程序各自位于其自己的子目录中。

0 投票
4 回答
2510 浏览

build - 为什么没有人为脑死亡者创建开源构建系统?

我想建立一个共享库。GNU/Linux 是开发和目标平台。C是实现语言。

我无法决定我想如何设置构建系统并一直在三个选项之间徘徊,每个选项都有很多不喜欢的理由:

  • 手工制作的 Makefiles - 我过去几乎都是这样工作的
  • GNU Autotools - 今年早些时候我使用 autotools 构建了一个共享的 C 库,但忘记了我是如何做到的,以及我在哪里使用了数百个教程。
  • waf - 据说很简单,但不是那么容易我今天下午就开始工作了。

我无法决定去哪个。我会选择一个,开始工作,然后遇到问题并决定另一个系统更好。我被卡住了。有人可以对此有所了解,这可能会帮助我解决这个问题吗?

0 投票
1 回答
462 浏览

python - 无法让 WAF 运行

我正在尝试在 Ubuntu 上构建 Monotooth 库,并且有一个需要编译的本机组件。来自 github 的发行版有一个 wscript 文件,需要 WAF 来构建。但是,每当我尝试执行 waf configure 时,我都会得到:

我不知道python,我不确定这实际上告诉了我什么。我是否缺少库(模块)或什么?

0 投票
2 回答
3881 浏览

python - 有没有办法使用 pydev 调试子进程?

我正在使用 Eclipse / PyDev 试图找到一种方法来调试subprocess.Popen用于创建子进程的代码:我希望能够调试创建的子进程。问题是我找不到跨进程边界进行调试的方法,我猜这实际上是不可能的。不过,在你问之前你永远不会知道,所以我正在做!

一点背景知识:我有一个由Waf驱动的复杂构建过程,它通过根据需要调用鼻子来调用我们的单元测试:我想挂钩这些过程以调试单元测试失败。我知道我可以尝试直接运行nose,但问题是我必须为我们的模块正确加载配置的环境相当复杂,如果可以避免的话,我不想复制代码来做到这一点。

我知道远程调试模式,但这很不方便,因为我必须在远程进程中手动调用调试器。如果有人知道一种方法来做我想做的事情,那将不胜感激。