在Python中安装Psyco时出现奇怪错误
我在一台机器上安装psyco时没有遇到任何问题,但在另一台机器上安装时却出现了奇怪的错误。
我无法使用easy_install,因为它给我报错:
C:\Python26\Downloads\psyco-1.6>easy_install psyco
Searching for psyco
Reading http://pypi.python.org/simple/psyco/
Reading http://psyco.sourceforge.net/
Best match: psyco snapshot
Downloading http://wyvern.cs.uni-duesseldorf.de/psyco/psyco-snapshot.tar.gz
error: Can't download http://wyvern.cs.uni-duesseldorf.de/psyco/psyco-snapshot.t
ar.gz: 404 Not Found
所以,我下载了最新版本1.6,并执行了“python setup.py install”。我之前已经用过好几次,没有问题。这次我收到了以下信息:
C:\Python26\Downloads\psyco-1.6>python setup.py install
PROCESSOR = 'i386'
running install
running build
running build_py
running build_ext
building 'psyco._psyco' extension
Traceback (most recent call last):
File "setup.py", line 180, in <module>
**kwds )
File "C:\python26\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\python26\lib\distutils\dist.py", line 975, in run_commands
self.run_command(cmd)
File "C:\python26\lib\distutils\dist.py", line 995, in run_command
cmd_obj.run()
File "C:\python26\lib\distutils\command\install.py", line 577, in run
self.run_command('build')
File "C:\python26\lib\distutils\cmd.py", line 333, in run_command
self.distribution.run_command(command)
File "C:\python26\lib\distutils\dist.py", line 995, in run_command
cmd_obj.run()
File "C:\python26\lib\distutils\command\build.py", line 134, in run
self.run_command(cmd_name)
File "C:\python26\lib\distutils\cmd.py", line 333, in run_command
self.distribution.run_command(command)
File "C:\python26\lib\distutils\dist.py", line 995, in run_command
cmd_obj.run()
File "C:\python26\lib\distutils\command\build_ext.py", line 340, in run
self.build_extensions()
File "C:\python26\lib\distutils\command\build_ext.py", line 449, in build_exte
nsions
self.build_extension(ext)
File "C:\python26\lib\distutils\command\build_ext.py", line 499, in build_exte
nsion
depends=ext.depends)
File "C:\python26\lib\distutils\msvc9compiler.py", line 449, in compile
self.initialize()
File "C:\python26\lib\distutils\msvc9compiler.py", line 359, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
File "C:\python26\lib\distutils\msvc9compiler.py", line 275, in query_vcvarsal
l
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
有没有人知道我为什么会遇到这个错误?谢谢!
2 个回答
我也在尝试解决这个问题(同时想安装另一个模块)。问题在于,脚本 msvc9compiler.py 正在寻找一个名为 vcvarsall.bat 的文件,这个文件在类似 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
的文件夹下。而这个文件又需要去执行一个位于 C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools
下的脚本,在我这里是 vcvars32.bat
。这个脚本的作用是设置和更新一些变量,比如 PATH, LIB 以及另外两个在你那儿可能没有被设置或更新的变量。
我的解决办法是手动找到这些 *.bat 文件,然后在命令提示符中运行它们,接着再运行安装命令。这样设置的变量在命令提示符的会话中是正确的,但只在这一会话中有效。
你可以在运行脚本之前和之后尝试运行 echo %LIB%
,看看这个变量是否真的被设置了。
看起来,psyco有一些需要构建的扩展模块。你遇到的错误信息让我有点意外,但它似乎是在说找不到微软的Visual C++编译器。这个编译器是构建Python 2.6扩展模块时所需的(至少是推荐的,其他编译器不太好用)。
如果你真的想从源代码构建,我建议你下载微软的Visual C++ 2008 Express版或者Visual Studio 2008的试用版。
其实你可以看看这个讨论串,或者从社区里找一个已经编译好的版本下载,这样会更简单。
补充一下:我刚注意到在Psyco的主页上,有一个链接指向Python 2.6的由Michael Foord提供的预编译版本。这些版本会更好。