【问题标题】:Problems with 'itertools' (Python) and Mac'itertools' (Python) 和 Mac 的问题
【发布时间】:2011-10-30 15:39:59
【问题描述】:

我正在尝试使用 itertools 模块来使用 permutations 函数,但我的 Mac 出现问题。

我一直在使用 linux 的另一台计算机上编程,使用代码没有问题。

import itertools
ps = itertools.permutations(m)

这是我在 Mac 上工作时遇到的错误:

AttributeError: 'module' object has no attribute 'permutations'

有人知道我如何在 Mac 中使用“itertools”吗?

【问题讨论】:

  • 你能告诉我们你安装了哪个版本的python吗? python --version

标签: python macos itertools


【解决方案1】:

您可能正在运行没有permutations 的python 2.5。这是 2.6 中的新功能。

您可以在 python 文档中找到 permutations 的 python 实现,您可以将其用于 2.5 代码:http://docs.python.org/library/itertools.html#itertools.permutations

【讨论】:

  • 值得注意的是,一些“等价于”的代码实际上并不等价。参见例如this question about the izip_longest Python implementation。使用 PyPy 实现可能会更好,这可能是 RPython 中 C 版本的一个相当简单的重新实现。
  • @agf:我会记住这一点。我没有仔细研究这些“等效实现”。
  • 对于 permutations(),纯 Python 等价物在算法上是等价的——C 版本是直接翻译,但用 C 的 for 循环代替了 Python 的 range() 和 reversed();否则,代码基本相同。
【解决方案2】:

documentation 表示New in version 2.6.,因此您可能运行的是旧版本。至少在我的 OSX Lion (Python 2.7.1) from itertools import permutations 上有效。

【讨论】:

    【解决方案3】:

    典型的库链接器问题。关于这个问题的一个非常有用的指南(你应该更新到 python 2.6 和更高版本的链接 - 用于系统范围或仅在 IDE 中)以及其他提示,可以找到here

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 2017-08-19
      • 2021-01-03
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多