将 SConstruct 移植到 Python 3

编程入门 行业动态 更新时间:2024-10-26 17:31:21
本文介绍了将 SConstruct 移植到 Python 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

2020 年使 SConstruct Python 3 兼容的最佳实践是什么?

What is the best practice in 2020 to make SConstruct Python 3 compatible?

例如,运行旧的 SConstruct 会出现这样的错误.

For example, running old SConstruct gives errors like this.

✗ python ~/scons/scripts/scons.py scons: Reading SConscript files ... File "/home/techtonik/Folding@home/fah-control/SConstruct", line 17 except Exception, e: ^ SyntaxError: invalid syntax

推荐答案

2to3 或 modernize 应该会有所帮助.这只是 Python 语法的问题.

2to3 or modernize ought to help. it's just Python syntax that's at issue.

2to3 随 Python 一起提供,也可以作为 Python 模块执行:

2to3 is shipped with Python, and can also be executed as a Python module:

python -m lib2to3 -w SConstruct

这是建议的补丁 2to3,看起来很小:

Here's the patch 2to3 suggested, looks pretty minor:

RefactoringTool: Refactored SConstruct --- SConstruct (original) +++ SConstruct (refactored) @@ -3,8 +3,8 @@ env = Environment(ENV = os.environ) try: env.Tool('config', toolpath = [os.environ.get('CBANG_HOME')]) -except Exception, e: - raise Exception, 'CBANG_HOME not set?\n' + str(e) +except Exception as e: + raise Exception('CBANG_HOME not set?\n' + str(e)) env.CBLoadTools('packager run_distutils osx fah-client-version') env.CBAddVariables( @@ -14,7 +14,7 @@ # Version try: version = env.FAHClientVersion() -except Exception, e: +except Exception as e: print(e) version = '0.0.0' env.Replace(PACKAGE_VERSION = version) RefactoringTool: Files that need to be modified: RefactoringTool: SConstruct

更多推荐

将 SConstruct 移植到 Python 3

本文发布于:2023-10-07 15:43:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1469808.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:SConstruct   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!