gpt4 book ai didi

python-3.x - 在ubuntu上安装没有pip的python

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:01 25 4
gpt4 key购买 nike

我需要在我从官方“ubuntu”Docker 镜像构建的自定义 Docker 容器中安装一个 Python 包,所以我想尽量减少它使用的空间。 Python3 可以正常安装并运行,但由于某种原因,不包括 pip。

所以我通过 apt install python3-pip 安装,这有效,但它有 300 兆,安装需要几分钟(显然是因为它安装了一大堆东西来构建来自 gcc 等的二进制包)。

当然,我可以在安装我想要的依赖项后从图像中卸载 python3-pip,另外使用 apt autoremove 来摆脱 299 megs。然而,这需要一分钟。

因此,尽管上述方法有效,但它显着增加了我的 Docker 镜像的构建时间。所以我尝试看看是否有一种无需 pip 即可安装依赖项的方法:

我尝试从 PyPI 下载依赖项的 .tar.gz,提取并尝试 python3 setup.py install,但这给我带来了一个奇怪的错误:

Traceback (most recent call last):
File "setup.py", line 59, in <module>
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 <module>
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 <module>
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/autocompletion.py", line 8, in <module>
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/main_parser.py", line 8, in <module>
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/cli/cmdoptions.py", line 17, in <module>
File "/tmp/tmpjpa5gs_x/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'

这很奇怪,因为如果我启动 python3,import sysconfig 工作正常。

我还尝试了 apt install python-pyyaml(我在 Docker 镜像中需要的依赖项),但它似乎不存在。

所以我别无选择。

最佳答案

我遇到了类似的问题,想提供一个替代解决方案。

在 Ubuntu 20.04 上,build-essential 和 python3-dev 是 python3-pip 的推荐软件包,因此您可以使用 --no-install-recommends 选项跳过它们:

RUN apt update -y && \
apt install python3 python3-pip --no-install-recommends -y && \
apt clean

这使我的图像从 420MB 减少到 165MB,显然构建时间也更快了。

注意:这适用于纯 Python 包,但如果您想编译任何东西,您可能需要 build-essential 和 python3-dev

有用的链接

关于python-3.x - 在ubuntu上安装没有pip的python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com