将 SConstruct 移植到 Python 3 [英] Porting SConstruct to Python 3
本文介绍了将 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文