我安装了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
映像,不仅通过apk安装py3-lxml
和py3-pyldap
,还通过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
或者,引用alpinespy3-pyldap
包的维护者Jakub的话(非常感谢您的快速响应(:
嗨,不要将从任何来源安装的python与Alpine python混合使用包裹。只需将python:3-alpine替换为干净的alpine:3.14映像并安装即可python3使用apk。