ubuntu版本20.04
python --version
Python 2.7.18
scons -version
script: v0.98.1.r2881
engine: v0.98.1.r2881
因为最新的gem5使用python3/scons3.0.0 我尝试了旧版本的项目,它只支持旧版本
当我使用命令scons build/X86/gem5.opt -j5
构建时
错误跳转并显示消息
*** Error loading site_init file './site_scons/site_init.py':
File "./site_scons/site_init.py", line 51
except SystemExit, e:
^
SyntaxError: invalid syntax
这是一个简单的python2/python3语法错误。我可以通过将“,”替换为“as”来解决此问题
但这涉及到另一个严肃的问题。有许多不同于旧文件和最新文件的文件。这意味着我必须修复所有语法错误文件。(如果这是唯一的办法……)
这就是我尝试使用旧的scon和python来构建项目的原因
首先,我只是认为可以通过强制python使用2.7版本来解决这个问题,它突然出现了
** Error loading site_init file './site_scons/site_init.py':
File "./site_scons/site_init.py", line 55
print """
For more details, see:
http://gem5.org/Dependencies
"""
^
SyntaxError: invalid syntax
然后我下载旧的SCON(0.98.0和0.98.1)
我不知道哪个地方适合安装它 所以我把这两个都安装在
/usr/local/lib and /usr/lib
完成此步骤后,版本将成功切换到0.98.1
但还是失败了
Site init file './site_scons/site_init.py' raised exception: name 'EnsureSConsVersion' is not defined
NameError: name 'EnsureSConsVersion' is not defined:
File "/usr/lib/scons-0.98.0/SCons/Script/Main.py", line 1231:
_exec_main(parser, values)
File "/usr/lib/scons-0.98.0/SCons/Script/Main.py", line 1195:
_main(parser)
File "/usr/lib/scons-0.98.0/SCons/Script/Main.py", line 833:
_load_site_scons_dir(d)
File "/usr/lib/scons-0.98.0/SCons/Script/Main.py", line 682:
imp.load_module(site_init_modname, fp, pathname, description)
File "./site_scons/site_init.py", line 49:
EnsureSConsVersion(0, 98)
遗憾的是,您得到了一个以Python2配置脚本形式存在的技术债务包,作者选择编写该配置脚本是为了与Python1.5.2兼容,而不是与Python3兼容。在Python2.5(2006)中已经可以编写
except
子句和print()
调用,这些调用也可以在Python3中使用。但在某些情况下,忽视这种可能性是很常见的。无论你认为这是不负责任的智力懒惰,还是谨慎的保守主义,都是品味的问题与其他人一样,
scons
项目有dropped support for Python 2,我认为最好的方法是将Python2配置脚本迁移到Python3一开始似乎更容易获得旧版本的
scons
来使用现有的配置脚本。这可能会解决眼前的问题,但也会推掉技术债务。如果你陷入困境,很难找到帮助您似乎不知道Python提供的迁移工具将完成大部分繁琐的工作。该模块被称为^{} ,它将重写
except
子句和print()
调用,调整import
以处理重命名的标准库模块,以及其他许多事情有些东西是
lib2to3
无法解决的:它可以解决语法问题,但不能解决语义问题,例如整数除法是//
而不是/
,Python 2代码依赖于字符串和ByTestRing之间缺少Python 3的区别。要获得这些方面的帮助,我推荐Lennart Regebro的书Supporting Python 3。在最近的一个迁移项目中,我很感激地使用了这本书相关问题 更多 >
编程相关推荐