我试图编译一些使用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'的平台”?
答案 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就可以正常工作。