为什么在Windows Vista 64上用Python 2.7和easy_install安装Pylons 1.0时最后一行出错?

3 投票
5 回答
2997 浏览
提问于 2025-04-16 04:47

我尝试在Windows Vista 64上用Python 2.7通过easy_install命令安装Pylons 1.0,但遇到了以下错误:

    raise ValueError(str(list(result.keys())))
ValueError: [u'path']

这里有一个链接,里面是从命令提示符进行整个安装过程的记录: http://pastie.org/1190341

  • 我为什么会遇到这个错误?
  • 我该如何解决这个问题?
  • 尽管出现了这个错误,Pylons还能正常工作吗?

5 个回答

2

如果你安装了64位的Visual Studio,可以在开始菜单的Visual Studio工具里找到cmd工具。这个工具会帮你设置好环境。

2

在Pylons的讨论列表中提到了一种解决方法:

这个方法有点旧(2008年),但因为你粘贴的输出显示在编译simplejson时出现了问题,所以这个信息可能对你有帮助。你可以试着按照那里的建议操作,看看是否能解决你的问题。

6

从这个错误信息来看:

File "C:\Python27\Lib\distutils\msvc9compiler.py", line 295, in q
uery_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']

distutils在寻找一个叫做vcvarsall.bat的文件。它会运行这个文件,从中获取包含文件和库文件的目录。这个批处理文件会根据你提供的平台来设置环境。

vcvarsall.bat应该在类似这样的目录下:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC

你需要创建以下目录:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\ C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat

在vcvarsamd64.bat文件中,添加以下内容:

call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /Release

以上所有步骤都是为了设置Windows的工具链,以便与distutils一起工作。虽然你可能安装了64位的Python,但大多数在pypi上提供的包都是32位的预编译版本。distutils需要使用你的编译工具链来构建64位的扩展。这就是这些步骤的意义所在。

请查看:

vcvarsamd64.bat和其他批处理文件的作用是设置库、工具等的路径,以便distutils可以使用。

[编辑:在v6中找不到setenv.cmd]

https://serverfault.com/questions/114998/vista-cmd-shell-thinks-its-windows-server-2008-debug

撰写回答