【问题标题】:How do I solve the issue "No module name Botan"如何解决“没有模块名称 Botan”的问题
【发布时间】:2018-03-15 02:01:57
【问题描述】:

我使用的是 windows 8 和 python 3.6.1 我在我的 cmd 中完成了以下命令:

pip 安装cryptoshop

但是,当我运行以下 python 代码时:

from cryptoshop import encryptfile
from cryptoshop import decryptfile

result1 = encryptfile(filename="test", passphrase="mypassphrase", algo="srp")
print(result1)

result2 = decryptfile(filename="test.cryptoshop", passphrase="mypassphrase")
print(result2)

我收到以下错误:

Traceback(最近一次调用最后一次): 文件“C:/Users/Owner/Desktop/test.py”,第 1 行,在 从密码商店导入加密文件 文件“C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptoshop__init__.py”,第 26 行,在 从 cryptoshop.cryptoshop 导入加密文件 文件“C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptoshop\cryptoshop.py”,第 56 行,在 从 ._cascade_engine 导入 encry_decry_cascade 文件“C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptoshop_cascade_engine.py”,第 27 行,在 从 ._nonce_engine 导入 generate_nonce_timestamp 文件“C:\Users\Owner\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cryptoshop_nonce_engine.py”,第 39 行,在 进口植物 ModuleNotFoundError: 没有名为“botan”的模块

现在,我显然知道您必须将 botan 安装到 python 中才能使用它。但是,这是我遇到问题的地方。我已经按照说明从这个链接下载了Botan:

https://github.com/randombit/botan

然后我按照这些说明尝试安装 Botan:

./configure.py [--prefix=/some/directory]
make
make install

但是,当我在命令行中键入 make 时,我收到一条错误消息,指出没有这样的命令。然后当我运行上面的 Python 代码时,我仍然得到 no module Botan 错误。所以很明显我正在做一些事情。如何将 Botan 正确安装到我的 Python 3.6 目录中,以便我可以使用 cryptoshop。

我也尝试过 pip install Botan,因为这就是我安装许多其他 python 库的方式,但也没有成功。

【问题讨论】:

    标签: python cmd pip botan


    【解决方案1】:

    make是一个linux命令

    根据botan 网站,您可以使用nmake 作为Windows 上的替代品(http://wiki.c2.com/?UsingNmake):

    在 Windows 上

    您需要安装 Python 的副本,并同时安装 Python 和 您在路径中选择的编译器。打开命令外壳(或 SDK shell),然后运行:

      $ python configure.py --cc=msvc (or --cc=gcc for MinGW) [--cpu=CPU] 
      $ nmake 
      $ botan-test.exe 
      $ nmake install
    

    Botan 支持 nmake 替换 Jom,它使您能够运行 多个并行构建作业。

    来源:https://botan.randombit.net/manual/building.html

    【讨论】:

    • 当我运行这些确切的命令时,我仍然无法识别 nmake。我在我的 botan 安装位置运行了以下命令。 python configure.py --cc=msvc [--cpu=CPU] 然后运行nmake得到错误
    • 你忘了提到nmake 需要安装Visual C++ 才能在Windows 机器上工作。 @tgrim90 确保你的 Windows 机器上安装了 Visual C++
    • @deaspo 有没有简单的方法可以做到这一点?
    • @tgrim90 您只需安装 SDK,即适用于 Visual Studio 2017 的 Microsoft Visual C++ Redistributable,无需安装整个 Visual Studio。它包含所有需要的组件。其他选项是在 Ubuntu 中运行代码
    • @deaspo 好的,所以我下载了这个:Microsoft Visual C++ Redistributable for Visual Studio 2017。然后安装它并尝试在命令行中运行上述代码,但仍然无法识别 nmake
    【解决方案2】:

    为了完整起见,以下是我在 Mac

    上的工作方式

    假设您安装了brew

    brew install botan
    

    您可能需要先安装其他功能:

    brew install gmp
    brew install mpfr
    brew install mpc
    

    使用brew info botan 查找botan 的安装位置。 我的位置是/usr/local/Cellar/botan/2.6.0

    在那个文件夹里,你会找到lib/python2.7/site-packages,把这个文件夹的内容复制到你的Python安装的site-packages文件夹中。

    注意 1: 在撰写本文时,似乎只支持 python 2.7,但我使用的是 python 3.6,一切似乎都在工作。

    注意2:如果文件名为botan2.py,您可能需要在python的site-packages文件夹中将其重命名为botan.py

    【讨论】: