我需要在一个自定义Docker容器中安装一个Python包,我正在使用官方的’ubuntu’Docker映像构建,所以我想最小化它使用的空间. Python3安装正常并运行,但由于某种原因,不包括pip.
所以我通过apt安装python3-pip安装,这可以工作,但它是一个惊人的300兆,并需要几分钟安装(显然是因为它安装了一些sh *加载的东西来构建从gcc等二进制包).
当然我可以在安装我想要的依赖项之后从映像中卸载python3-pip,另外使用apt autoremove来消除299兆.然而,这又需要一分钟.
因此,虽然上述工作,但它显着增加了我的Docker镜像的构建时间.所以我试着看看是否有一种方法可以在没有pip的情况下安装依赖:
我尝试从PyPI下载依赖项的.tar.gz,解压缩并尝试python3 setup.py安装,但这让我有一个奇怪的错误:
Traceback (most recent call last):
File "setup.py", line 59, in
from distutils import log
ImportError: cannot import name 'log'
我想也许我需要安装setuptools或升级distutils.
我试图从官方网站上使用get-pip.py,但也失败了:
Traceback (most recent call last):
File "get-pip.py", line 20890, in
main()
File "get-pip.py", line 197, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
import pip._internal
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/__init__.py", line 40, in
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/autocompletion.py", line 8, in
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/main_parser.py", line 8, in
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/cmdoptions.py", line 17, in
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/locations.py", line 10, in
ImportError: cannot import name 'sysconfig'
这很奇怪,因为如果我启动python3,import sysconfig工作正常.
我也试过apt安装python-pyyaml(我在Docker镜像中需要的依赖),但这似乎不存在.
所以我没有选择权.