为什么我收到错误“scons:***没有名为'win32'的平台”?

时间:2011-11-17 14:37:46

标签: windows scons

我试图编译一些使用scons作为构建系统的C ++源代码。在我的64位Windows机器上使用python 3.2.X(64位)和我认为是python 2.7.X(32位)我在尝试运行scons时会出现以下错误:

  

scons:***没有名为'win32'的平台

我相当确定我的2.7安装是32位,因为在过去我尝试使用64位系统的scons并且它完全拒绝运行。我花了一个小时左右玩它,尝试修复安装,在google / SO上等等,但找不到解决方案。最后我使用32位和64位安装程序卸载了python 2.7(我想我必须安装在同一位置?),卸载scons,删除剩余的python27文件夹并重新安装32位python和scons。

现在scons工作了!

由于我没有在SO上找到解决方案,我认为我应该发布我的,但我也想知道导致这个错误的原因是什么?

导致scons错误的原因是“没有名为'win32'的平台”?

1 个答案:

答案 0 :(得分:4)

我自己确实遇到过这个问题。这是由 scons.bat 使用错误的python库引起的。不知怎的,安装搞砸了,当你在2.7中运行时,它尝试使用python 3中的库。我通过编辑 scons.bat 脚本并设置python path和python home来解决这个问题。脚本。

此处显示了更改。

Set PYTHONHOME=C:\Python27\
Set PYTHONPATH=C:\Python27\Lib\;C:\MinGW\bin;C:\Python27\Lib\site-packages
Set PATH=%PYTHONHOME%;%PYTHONPATH%;%PATH%

...
more stuff here
...
:WinNT
setlocal
@REM ensure the script will be executed with the Python it was installed for
set path=%~dp0;%~dp0..;%path%
c:\Python27\python -c "from os.path import join; import sys; sys.path = [ join  (sys.prefix, 'Lib', 'site-packages', 'scons-2.0.1'), join(sys.prefix, 'Lib', 'site-    packages', 'scons'), join(sys.prefix, 'scons-2.0.1'), join(sys.prefix, 'scons')] +   sys.path; import SCons.Script; SCons.Script.main()" %*
endlocal & set SCONS_ERRORLEVEL=%ERRORLEVEL%

在此之后,只要我指定这个scons.bat脚本来运行scons就可以正常工作。