python - 将 SConstruct 移植到 Python 3
问题描述
2020 年让SConstruct
Python 3 兼容的最佳实践是什么?
例如,运行 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
解决方案
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
推荐阅读
- html - 在Angular中加载元素后添加css样式
- android - 为什么Android SDK 30会生成无效的APK文件?
- python - 我正在尝试用 matplotlib 绘制三行,但它显示为一条
- java - 将提供的 spark .jar 依赖项添加到 gradle build 后得到“找不到或加载主类”
- java - 如何在数学方程中使用用户输入的整数
- c++ - 按位或运算符对 2 的补码字节有什么特殊作用吗?
- python - 如何根据两个索引列表获取数组元素?
- html - 列表中的文本与列表的其余部分没有正确对齐,因为它被推到 ::before 伪元素下
- kiwi-tcms - 如何使用 KIWI-tcms api 注销
- java - 从内部类中访问的变量需要声明为 final