Dav*_*ide 28 python tdd build-automation unit-testing pyinstaller
我正在开始一个小型/中型python项目,可能是在测试驱动开发中.我的背景更多是C和java而不是python(我使用了ant和makefile)
我知道在python中你可能不需要构建工具,但我会,因为我会使用cython和PyInstaller(这个东西应该在几个不同的UNIX上运行,而不是直接依赖于python)而且我想要方便从CLI中选择测试,构建文档,可能检查依赖关系等.
有人抱怨python缺乏类似make的工具.我知道很少有工具,比如scon和摊铺机,但我想听听真实用户而不仅仅是他们的网站.有人使用摊铺机吗?
什么是许多软件包附带的常见setup.py?我查看了一些,看看是否有一个常见的用法,但我没有发现任何有趣的东西(也许我使用了错误的例子)
你是否建议至少坚持使用我已经知道的东西(ant和Makefile)?如果是这样,你有没有为python推荐的ant扩展(+ cython + pyinstaller + pyUnit)?
编辑:为了避免像jwp那样的进一步答案,请注意,对于这个项目,我绝对需要我的程序是一个独立的可执行文件,因为绝对不可能在目标平台上运行可执行文件的python VM.我有完全相同的hw可用于编译,所以幸运的是我不需要交叉编译(但我会在更友好的Linux上进行开发).
我还想测试我的代码是否从一开始就在Cython中编译,而不是过早优化,但只是为了确保我不会使用不兼容的功能太过分,如果Cython需要进行痛苦的重构将是非常需要的.
所以请关注我的实际问题
jwp*_*jwp 14
如果可能的话,我建议在开始时避免使用扩展模块(C/cython).获取用Python编写的所有代码,使用基于简单distutils的配置,使用-m(python -m mypkg.test.testall或任何;导入unittest)运行测试.
一旦你的项目进入一个舒适的状态,然后开始使用cython和随之而来的额外项目管理来解决一些优化问题.distutils可以构建扩展模块,所以我不确定你是否需要make/scons ..
project-dir/
setup.py
mypkg/
__init__.py
mymod.py
test/
__init__.py
testall.py
testsomething_specific.py
Run Code Online (Sandbox Code Playgroud)