【问题标题】:ImportError: No module named 'Crypto'ImportError:没有名为“加密”的模块
【发布时间】:2015-04-05 23:34:31
【问题描述】:

我正在使用 pycrypto。它在我的本地 Windows 机器上运行良好,但是当我将它移动到我的 python 框时,导入模块时出现错误:

from Crypto.Cipher import ARC4 
ImportError: No module named 'Crypto'

python3.3 -c "from Crypto.Cipher import ARC4"的输出

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'Crypto'

pip3 列表的输出有一个参考,包括 pycrypto (2.6.1)

我知道它适用于 Python 2.7.6,但我在 3.3 中编写了脚本,因此它依赖于 3.3 中的某些内容

【问题讨论】:

  • 你的python盒子是什么?你实际上已经在你的盒子上安装了 python3 的所有包?
  • 盒子运行的是 Ubuntu 14.04 x64。我在本地机器和盒子上都添加了带有 pip3 的包。
  • 当您尝试pip3 install pycrypto 时,您会在输出中看到什么,特别是列出的目录
  • 好吧,我想我想通了,pip把pycryto模块安装到python3.4目录下。我将文件夹复制到 3.3,它现在可以工作了。谢谢你的帮助=)
  • 别担心,我会自己使用python3.4,除非你有充分的理由不这样做

标签: python importerror pycrypto


【解决方案1】:

正如我在this answer 中所写的:

警告:不要再使用pycrypto

改用pycryptodome,通过pip3 install pycryptodome

但请确保您没有安装 pycrypto,因为这两个软件包都安装在同一文件夹 Crypto 下。

【讨论】:

  • 放弃使用pycrypto的原因是什么?
  • 这篇文章的最初原因(一个未解决的 CVE)已经解决,所以现在可以安全地再次使用 pycrypto。
【解决方案2】:

我假设您的“python 盒子”是一台远程计算机。

首先,确保 pycrypto 是最新的 (pip3 install --upgrade pycrypto)。旧版本可能与 python 3.3 不兼容

如果这不起作用,请尝试查看站点包(目录)以确保这些功能确实存在。

如果这些都不起作用,使用from future import 可能会更容易(只是一个建议)你需要的东西。这样它就兼容 python 2&3。

【讨论】:

  • 感谢您的评论,我通过将站点包中的文件夹从我的 3.4 位置复制到 3.3 的位置来解决问题。
  • 它不能与 python 3.6.1 一起工作我不知道为什么?
  • @RyanChou 你可能想改用密码学pypi.org/project/cryptography,我认为 PyCrypto 已经失效(自 2014 年以来就没有工作了)。
  • @IronManMark20 好的,我明白了。
猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 2012-12-07
  • 2012-05-23
  • 2019-07-29
  • 2015-07-04
  • 2014-03-15
  • 2017-12-29
  • 2014-09-12
相关资源
最近更新 更多