在 Alpine 中用于 Python3 的 PyCrypto?

PyCrypto for Python3 in Alpine?

是否有 Alpine 包允许我为 Python 3 安装 PyCrypto?

在遇到 pip3 install pycrypto 的问题后,我偶然发现了这个 post,它解释了 使用 apk add py-numpy@testing。也可以使用 apk add py-crypto 为 Python2.7 安装 PyCrypto。但是,我似乎无法弄清楚如何为 Python3 调用 pycrypto,即使这个包存在。

作为替代解决方案,我尝试使用 apk add gcc 安装 C 编译器 gcc,以便 pip3 install pycrypto 中的设置工具可以编译。但是,当我 运行 已经使用 gcc 命令时,它会抛出一个致命错误:

...
running build_ext
running build_configure
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/tmp/pip-build-2TivSm/pycrypto':
configure: error: C compiler cannot create executables
...

Alpine 里面没有编译 Python3 模块的方法吗?

PyCrypto 似乎在 python 3 方面有问题,我为此苦苦挣扎。如果您使用的是 Windows,这是对我有用的解决方案:

  • 使用 Visual C++ 安装 Visual Studio 2015(VS 2015 版仅在您使用 python 3.5+ 时有效。如果您使用的是 3.4,我认为正确的版本是 VS2010。对于早期版本我不太确定选择哪个版本,但您可以在互联网上找到相关信息)
  • 下载pycrypto source。目前稳定版本是 pycrypto-2.6.1。使用这个而不是下面的实验版本。
  • 提取存档
  • 编辑文件 lib/Crypto/Random/OSRNG/nt.py 并将 import winrandom 替换为 from Crypto.Random.OSRNG import winrandom
  • 运行 以下来自 cmd python setup.py build -c msvc python setup.py install python setup.py test
  • 如果测试给您带来一些错误,您无论如何都可以逃脱。

取自我的 github project(开发分支)的说明。

这对我有用:

apk add gcc g++ make libffi-dev openssl-dev

然后进行 pip 安装。

configure: error: C compiler cannot create executables

在 alpine 安装他们的 SDK。

对于 Alpine 中的任何编译内容,请确保您拥有这些包。

alpine-sdk autoconf automake libtool

安装它 apk 添加 --no-cache alpine-sdk autoconf automake libtool