为了账号安全,请及时绑定邮箱和手机立即绑定

将 SConstruct 移植到 Python 3

将 SConstruct 移植到 Python 3

杨__羊羊 2023-07-18 16:48:25
2020 年兼容 Python 3 的最佳实践是什么SConstruct?例如,运行 oldSConstruct会出现这样的错误。✗ python ~/scons/scripts/scons.pyscons: Reading SConscript files ...  File "/home/techtonik/Folding@home/fah-control/SConstruct", line 17    except Exception, e:                    ^SyntaxError: invalid syntax
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信