【问题标题】:no module named crypto.cipher没有名为 crypto.cipher 的模块
【发布时间】:2015-10-07 17:21:09
【问题描述】:

我现在正在尝试加密一段时间。我最近接触了这个名为PythonCrypter 的基于python 的密码器。

我对 Python 还很陌生,当我尝试通过终端打开 CodeSection.py 文件时,我收到错误消息 from Crypto.Cipher import AES ImportError: No Module Named Crypto.Cipher

我做错了什么?

【问题讨论】:

  • 你需要安装pycrypto
  • 不幸的是,这似乎不是一个管理良好的项目 - 没有 requirements.txtsetup.py 让您轻松安装它及其依赖项。您将需要识别它依赖于您自己的任何第三方包,并手动安装它们。例如,搜索Crypto.Cipher 会将您带到pycrypto
  • 是否曾找到解决此问题的方法?我在 Ubuntu 17 上遇到了同样的问题

标签: python python-2.7 encryption


【解决方案1】:
pip uninstall Crypto
pip uninstall pycrypto
pip install pycrypto

这对我有用。

重点是,当你安装pycrypto时,你应该先删除Crypto

【讨论】:

  • 这行得通。在再次安装 pycrypto 之前,我还必须重新启动。有时可能是必要的。
【解决方案2】:

我刚刚在 Windows 上使用 Python 2.7 遇到了这个问题。我的解决方案是将文件夹从 ..\site-packages\crypto 重命名为 ..\site-packages\Crypto。小写“c”导致导入错误。

详情请见https://github.com/pypa/pip/issues/3309

【讨论】:

  • 我遇到了同样的问题。非常感谢。
  • 刚刚在我的 Mac 上遇到了同样的情况。
【解决方案3】:

为了使用 pycypto 库,您应该安装它:

pip install pycrypto

easy_install pycrypto

【讨论】:

  • @KanishkSingh 尝试下载 tar 文件并安装它。 pypi.python.org/pypi/pycrypto
  • @Arion_Miles 好像是vcvarsall.bat的问题,需要安装visual studio c++,更多信息点击链接stackoverflow.com/questions/2817869/…
  • 是的,我安装了提到的 C++ 编译器和 pycrypto 安装都完美,但是这个程序仍然无法导入 crypto.cipher 我相信这是因为我的 Pycrypto 存储在 'C:\Python27\Lib\site -packages' 并且该程序可能正在尝试从 'C:\Python27\Scripts' 获取它
  • 您是否尝试将文件复制到那里? @Arion_Miles
【解决方案4】:

如果您使用 pip 或 easy_install 进行安装,PyCrypto 无法与 Windows 系统很好地配合...或者至少它不适合我。

在此处尝试使用预构建的 Windows 二进制文件: http://www.voidspace.org.uk/python/modules.shtml#pycrypto

【讨论】:

  • 尝试了你的建议。安装了“PyCrypto 2.6 for Python 2.7 32bit”它安装正确,但我仍然遇到同样的错误。
  • @Arion_Miles 您是否有可能在您的机器上安装了两个不同版本的 Python 安装了两个版本的 Python?另外,看看上面的 cmets,如果 Pycrypto 在 'C:\Python27\Lib\site-packages' 中(它应该在哪里),你应该确保它包含在环境变量中的 PATH 变量中。跨度>
  • 我是否需要在我的环境变量路径中专门添加“C:\Python27\Lib\site-packages”?如果没有,那我需要添加什么?
  • @Arion_Miles 通常当您安装 Python 时,它会为您添加环境变量路径,但如果它不存在,那么是的,特别添加“C:\Python27\Lib\site-packages”
  • 顺便说一句,有关 Python 如何与环境变量中定义的系统路径交互的更多信息,请查看link
【解决方案5】:

我只花了半个小时在 Ubuntu 上解决了这个问题。原来,我已经通过 apt 安装了 python-pycryptopp 包(如果可能,我更愿意避免使用 pip),但我需要的包实际上是 python-crypto

【讨论】:

    【解决方案6】:

    在 ubuntu 18.04.2 LTS 中安装 pycryptodome 包解决了这个问题

    【讨论】:

    • pycryptodome 如果您使用的是 Python3,则需要此包。
    【解决方案7】:

    在我的情况下,pycrypto包没有安装,当我尝试添加它时:我遇到了以下错误,通过下载和安装C++ Compiler for Python 2.7得到纠正。

    错误:需要 Microsoft Visual C++ 9.0。从http://aka.ms/vcpython27获取它

    【讨论】:

      【解决方案8】:

      我觉得你应该试试这个:

      sudo pip2 install pycrypto
      

      【讨论】:

        【解决方案9】:

        我知道这已经回答了,但我想扩展一点

        pip install Crypto --> IS THE WRONG PACKAGE
        

        如果您这样做,请运行以下命令将其删除:

        $> pip uninstall Crypto
        

        现在,安装类型:

        $> pip uninstall pycrypto --> just in case you have a broken package already
        
        $> pip install pycrypto
        

        ma​​cOS Catalina 上,这将自动为 Python3.6 自动安装 pycrypto 包。

        这意味着如果你运行:

        python your_script.py
        

        它会失败。当然,除非 Python3 被设置为您的默认值。

        现在如果你真的想在 Python2 上运行 pycrypto 你可以运行下面的

        $> sudo pip2 install pycrypto
        

        你需要 sudo 才能工作!

        这将只为 Python2 安装 pycrypto

        我希望这可以帮助可能正在安装然后使用 python2 运行的人,或者希望使用 Python2 安装软件包但不断使用 Python3 软件包进行安装的人

        【讨论】:

          猜你喜欢
          • 2011-07-23
          • 1970-01-01
          • 1970-01-01
          • 2019-03-28
          • 2017-12-30
          • 2018-01-06
          • 2018-11-11
          • 2015-04-10
          • 2013-11-27
          相关资源
          最近更新 更多