将 SConstruct 移植到 Python 3

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


例如,运行 oldSConstruct会出现这样的错误。


✗ 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


杨__羊羊
浏览 88回答 1
1回答

慕的地6264312

2to3或者modernize应该有帮助。这只是 Python 语法的问题。2to3随 Python 一起提供,也可以作为 Python 模块执行:python -m lib2to3 -w SConstruct这是建议的补丁2to3,看起来很小: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python