alpine-linux命令需要永远

尼古拉斯·R。

我正在尝试使用alpine-linux,但无法正常工作。

我尝试使用,pip install cryptography但它需要花很长时间,并且会停在这种令人费解的输出上

Running command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-h925mzyj/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__f le__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-gdaazboj --python-tag cp36

我该怎么办?

马蹄铁

对于大多数附带C / C ++扩展的Python软件包(用C / C ++编写的代码编译为共享对象并通过外部函数库以Python加载),Alpine令人头疼。原因是PEP 513,它在Linux发行版之间的可移植性定义manylinux1基于glibc / glibcxx。由于Alpine使用musl libc,因此无法manylinux1在Alpine上安装兼容的车轮。因此,当您发出时pip install cryptography,将过滤带有已编译扩展名的转轮,并pip尝试使用源代码中的所有C扩展名构建软件包。

使用系统软件包管理器进行安装

这是首选方法,@ GracefulRestart在注释中提到了这种方法。如果您不需要该软件包的最新版本,请使用它。Alpine提供了预构建的cryptography软件包,目前是cryptography<=2.1.4用安装apk

$ apk add py-cryptography

用pip安装

如果您需要最新版本,可以尝试通过安装从源代码构建它pip

准备构建环境

您将需要带有头文件的编译器和库:musl,OpenSSL,libffi和Python本身:

$ apk add gcc musl-dev libffi-dev openssl-dev python3-dev

建筑

pip install pkgname默认情况下隐藏构建日志。要查看完整的构建日志,请添加-vvv以增加详细程度。(可选)此外,您可以manylinux1通过添加来明确禁止安装轮子,--no-binary=pkgname从而可以强制执行源代码构建。

$ pip install cryptography -vvv --no-binary=cryptography

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章