与编程无关,但是在尝试使用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
答案 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日早些时候无法做到。