【问题标题】:Python package install errorPython包安装错误
【发布时间】:2013-10-23 22:02:38
【问题描述】:

与编程不完全相关,但关于我在尝试使用 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++ 异常处理程序,但未启用展开语义。小号 指定/EHsc

e:\ajit\pyml-0.7.13.tar\dist\pyml-0.7.13\pyml\containers\ext\SparseDataSet.h(14) : 致命错误 C1083: 无法打开包含文件: 'ext/hash_map': 没有这样的文件或 目录

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

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

Python 版本:2.7.5 MSC v.1500 32 位 (Intel)] 在 Windows 8 机器上的 win32 上。

PyML 版本:0.7.13

【问题讨论】:

  • 没有帮助,但我有同样的问题。你解决了吗?看起来最重要的错误是 Windows 不支持 PyML,但我很想知道如何让它工作。
  • @Jamie Bull - 无法解决该错误。尝试了很多东西。
  • 还有解决方案吗?我也有同样的问题。

标签: python visual-studio installation pyml


【解决方案1】:

首先,它是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 <hash_map>,而不是 # include <ext/hash_map>。如果你坚持使用 MSVS,你可能最终会修改 PyML 代码。

大概,你可以切换到MinGW使用,这里是一个step-by-step how-to,虽然我没有检查PyML是否可以这样构建。不能在 11 月 14 日之前完成。

【讨论】:

  • 所以如果我安装了 Visual Studio 8(如果我设法找到安装程序),然后重试,你说的可能会奏效。
  • @goldenmean 没有尝试,但可能是的,如果您将 更正为 。明天我将有一台测试win8机器并尝试MinGW。
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 2013-11-07
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多