python - 如何在 alpine 中使用来自 apk 的 python 包
问题描述
我安装了 py3-lxml(和 py3-pyldap)并期望 python(3) 能够导入库。但是没有找到该模块。我哪里错了?
docker run -it python:3-alpine
/ # apk --no-cache --update add py3-lxml py3-pyldap
/ # python3
Python 3.9.6 (default, Jun 29 2021, 19:36:19)
[GCC 10.3.1 20210424] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'lxml'
>>> import ldap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'ldap'
解决方案
所以基本上你有两种可能性:
- 要么您使用裸
alpine
映像,而且不仅安装py3-lxml
和py3-pyldap
通过 apk,而且还安装python3
它本身。 - 或者您自己使用
python:3-alpine
和安装附加软件包,如下所示:
apk add --no-cache --virtual .build-deps build-base # only build deps
apk add --no-cache openldap-dev libxml2-dev libxslt-dev # runtime deps
pip install --no-cache-dir -r lxml python-ldap
apk del .build-deps # delete build deps
或者,引用alpines包的维护者Jakubpy3-pyldap
的话(非常感谢您的快速响应):
嗨,不要将从任何来源安装的 python 与 Alpine python 包混合。只需用干净的 alpine:3.14 映像替换 python:3-alpine 并使用 apk 安装 python3。
推荐阅读
- node.js - 我应该在每个模块中要求吗?
- python - 如何检测股票价格的日历效应(星期几、月份等)
- javascript - 是否可以在 Node.js 中为错误输出设置颜色/格式?
- python - Python/Selenium Firefox 驱动程序在 Ubuntu 上失败,在 Windows 上正常
- python-3.x - 使用 selenium 打开时如何捕获错误 url 的异常信息?
- python - 如何通过结合元组和静态字符串来使用 itertools 创建字典
- ruby-on-rails - 语法错误,意外结束,期待输入结束,虽然我认为它有正确的结束编号
- numpy-ndarray - 有没有办法将一个大小为 1235 的 numpy 数组从 1D 重塑为 2D
- javascript - 循环发送消息
- mongodb - 我正在尝试使用请求创建新的购物车模式