如何解决将SConstruct移植到Python 3
2020年使SConstruct
Python 3兼容的最佳实践是什么?
例如,运行旧的SConstruct
会出现这样的错误。
✗ 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
是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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。