Python包安装错误

时间:2013-10-23 22:02:38

标签: python visual-studio installation pyml

与编程无关,但是在尝试使用python setup.py install安装python包时遇到的错误。

我已经下载了PyML包的tar文件。然后在提取后我完成了以下步骤:

在DOS提示符下设置变量如下:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

转到解压缩的PyML文件夹中具有setup.py的目录并运行:

python setup.py build

python setup.py install

但是在这两个步骤中我都会收到如下错误,与ext / hash_map相关,没有找到这样的文件。

  

C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ INCLUDE \ xlocale(336):wa       rning C4530:使用了C ++异常处理程序,但未启用展开语义。小号       pecify / EHsc

     

E:\阿吉特\ pyml-0.7.13.tar \ DIST \ pyml-0.7.13 \ pyml \容器\分机\ SparseDataSet.h(14)        :致命错误C1083:无法打开包含文件:'ext / hash_map':没有这样的文件或       目录

     

错误:命令'“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ BIN \ cl.e       xe“'以退出状态2失败

我错过了什么?如何解决此错误并安装PyML。

在Windows 8计算机上的win32上,

Python版本:2.7.5 MSC v.1500 32位(英特尔)]。

PyML版本:0.7.13

1 个答案:

答案 0 :(得分:3)

首先,recommended to use与用于构建Python二进制文件的编译器相同,即VS8:

  

Python 2.6,2.7和3.1都是使用该版本构建的(即2008)。   由于另一个悠久的传统,Python扩展模块必须是   使用相同的编译器版本构建(更具体地说,CRT版本)   作为Python本身。所以要为这些中的任何一个构建扩展模块   发布时,您需要拥有VS 2008或VS 2008 Express的副本。

因此,您的下一个问题可能是"How to Enforce C++ compiler to use specific CRT version?"

其次,这不是一个解决方案,因为在gcc和msvs中包含tr1库有不同的sintax,例如参见this question。 MSVS不是# include <ext/hash_map>,而是# include <hash_map>。如果你坚持使用MSVS,你可能最终会修改PyML代码。

可能你可以切换到MinGW使用,这里是step-by-step how-to,通过我没有检查是否可以用这种方式构建PyML。将于11月14日早些时候无法做到。