【问题标题】:Having a problem trying to setup a simple Sconstruct 'Hello World' script尝试设置简单的 Sconstruct 'Hello World' 脚本时遇到问题
【发布时间】:2019-02-24 04:50:08
【问题描述】:

现在在任何人攻击我之前,我之前已经看到过这个问题。我知道我不是唯一一个遇到这个问题的人,但是,我尝试按照人们建议的方式修复它,但没有奏效。请帮忙。

我收到错误:

Index Error: List index out of range

我已经尝试了一切,但没有任何效果。很抱歉我是新手。

这是问题本身:

C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Sconstruct>s
cons
scons: Reading SConscript files ...
IndexError: list index out of range:
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Scon
struct\SConstruct.py", line 1:
    SConstruct: Program('HelloWorld.c')
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Scri
pt\SConscript.py", line 665:
    env = self.factory()
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Scri
pt\SConscript.py", line 645:
    default_env = SCons.Defaults.DefaultEnvironment()
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Defa
ults.py", line 88:
    _default_env = SCons.Environment.Environment(*args, **kw)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Envi
ronment.py", line 982:
    apply_tools(self, tools, toolpath)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Envi
ronment.py", line 107:
    env.Tool(tool)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Envi
ronment.py", line 1789:
    tool(self)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\__init__.py", line 296:
    self.generate(env, *args, **kw)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\default.py", line 40:
    for t in SCons.Tool.tool_list(env['PLATFORM'], env):
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\__init__.py", line 1266:
    c_compiler = FindTool(c_compilers, env) or c_compilers[0]
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\__init__.py", line 1169:
    if t.exists(env):
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\msvc.py", line 292:
    return msvc_exists(env)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\MSCommon\vc.py", line 759:
    vcs = cached_get_installed_vcs(env)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\MSCommon\vc.py", line 524:
    ret = get_installed_vcs(env)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\MSCommon\vc.py", line 535:
    VC_DIR = find_vc_pdir(ver)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\MSCommon\vc.py", line 344:
    comps = find_vc_pdir_vswhere(msvc_version)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\scons\SCons\Tool
\MSCommon\vc.py", line 306:
    vc_pdir = os.path.join(vsdir[0], 'VC')

谢谢。

编辑:感谢 Faruk13,我编辑了这个。无论如何,这就是你的意思 Partho63 吗?​​

编辑 2:这是您请求的文件。对此感到抱歉。

https://www.dropbox.com/s/u3e5ojuh9b5zyge/Sconstruct%20Files.zip?dl=0

编辑 3:

我发现了这个问题。显然,当我第一次安装 Visual C 时,它没有正确安装。重新安装后,它工作。谢谢大家的帮助,如果我的新手行为惹恼了你们,我深表歉意。谢谢您的帮助。

【问题讨论】:

  • 如果您不向我们展示您的代码,我们将无法提供帮助。是的,您包含了完整的错误消息,这很好,但它本身几乎没有用。
  • 从报错的最后一行判断,vsdir必须是一个空列表,因此没有元素[0]
  • 请分享您的 SConstruct 文件。 (如果你有他们的 SConscript 文件)。 (这将是最低限度的完整验证器。换句话说,如果我们将您的文件复制到我们的系统,我们应该能够在它们上运行 SCons 并查看您得到的错误)
  • 如果我不得不猜测,我会说你的系统上没有安装任何版本的 Visual C?

标签: python python-3.x scons


【解决方案1】:

需要正确安装 Visual C,Scons 才能正常构建或工作。

【讨论】:

    【解决方案2】:

    此特定错误消息是由于 SCons 3.0.4 中引入的错误造成的。即使您不打算使用 MSVC 编译器,它也会在没有安装 MSVC 编译器的 Windows 环境中影响 scons。

    此拉取请求 https://github.com/SCons/scons/pull/3288 已修复此问题。在撰写本文时,SCons 3.0.4 是最新发布的版本,因此您需要使用 master 分支或返回到以前的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 2016-02-11
      • 2018-05-17
      • 1970-01-01
      • 2015-04-08
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多