Tho*_*ing 8 python ubuntu pip docker
我正在尝试构建一个 docker 映像来运行一些测试,但我无法说服 ubuntu 安装 python 3.9 和 pip,而不是 python3.8。
启动Docker unbuntu:latest,安装python3.9没问题,但是没有pip。好的,我会尝试按照所有答案的建议进行操作:
apt-get install python3-pip
但这会安装 python3.8 的 **所有 ** 以及其他垃圾。现在,它确实可以工作,但它让我在图像中拥有完全不必要的 python 版本,而我希望图像尽可能小,这让我很烦恼。
不,之后卸载 3.8 不起作用,它会删除 pip。
如何使用 pip 获得 python3.9,而不使用 python3.8?
我确实看到了这个:How to install pip for Python 3.9 on Ubuntu 20.04
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
当您运行该脚本时,它会抱怨需要 distutils。没问题:
sudo apt-get install python3-distutils
python3-distutils 依赖什么?为什么,当然是python3.8!
Bal*_*ous 12
ubuntu 存储系统 python 包/usr/lib/python3/dist-packages并为所有 python3 版本共享。
在 ubuntu 20.04 容器 ( docker run -ti ubuntu:20.04) 内:
apt-get update
apt-get install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
# Install py39 from deadsnakes repository
apt-get install python3.9
# Install pip from standard ubuntu packages
apt-get install python3-pip
Run Code Online (Sandbox Code Playgroud)
然后您可以使用 调用 pip python3.9 -m pip ...,但要小心,所有内容都安装在 中/usr/lib/python3/dist-packages。
但如果您需要的只是 python3.9 的 dockerized 版本,那么最好使用官方 python docker 镜像,以 debian 或 alpine(非常轻)作为基础。两者都使用一个标准lib/pythonx.y/site-packages。
默认情况下,这些图像定义了 python 解释器的入口点,但您可以覆盖 Whybash或busybox sh(alpine)。
launchpad 存储库基于 ubuntu 发行版构建。使用过度分发可能会导致库不兼容。
在 deadsnakes ubuntu/xenial 存储库中,python3.9 需要libssl1.0.0,但 debian/buster 提供libssl1.1。
在 debian/buster 中获取 python3.9 最简单的方法是使用官方镜像 ( docker run -ti python:3.9-buster)。否则,构建它...
| 归档时间: |
|
| 查看次数: |
49654 次 |
| 最近记录: |