gpt4 book ai didi

docker 容器中的 Python 3.6 无法启动,只是崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:21 26 4
gpt4 key购买 nike

我知道这个标题可能有点令人困惑,所以为了澄清:docker 容器启动得很好。当我尝试打开 Python 时,它一直崩溃。

我的电脑在 Ubuntu 上运行。这是 uname -a 的输出:

Linux work-laptop 4.15.0-39-generic #42-Ubuntu SMP 
Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

我有一个基于 Python:3.6.3 图像的 docker 容器。我还对 alpine、jessie、slim 和 stretch 图像以及其他几个 3.6 版本进行了尝试。他们都有同样的问题。

我运行名为“nb”的容器,并附加到一个交互式 shell:

docker-compose run nb sh

容器启动没有问题,但是当我尝试打开 python shell 时:

python

我收到一条奇怪的错误消息:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f32546ae700 (most recent call first):
Aborted (core dumped)

我已经检查了 $PYTHONPATH 和 $PYTHONHOME,两者都没有设置。

奇怪的是,如果我指定使用 python 2.7:

python2

shell 启动没有问题。此外,如果我使用任何 3.7 图像并打开 python 3.7 shell,那里没有问题。问题好像仅限于3.6

我对此所做的研究告诉我,这可能是环境变量的问题。我已经尝试将 PYTHONHOME 手动设置为这些值(单独)

/usr/local/lib
/usr/local/lib/python
/usr/local/lib/python3.6

结果没有变化。唯一不同的是报错信息不再提示设置 PYTHONHOME

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f32546ae700 (most recent call first):
Aborted (core dumped)

我认为问题可能出在我的 dockerfile 中的某些命令上,所以我删除了所有内容,只是启动了一个未经过滤的 python 图像。同样的问题。我重新下载,尝试了其他图像,没有变化。我无法想象所有(或任何)官方 python 图像都会导致此问题,所以我猜问题一定出在我的主机上,但我找不到任何涉及这个主题的东西。有什么想法吗?

最佳答案

解决了我的问题。我在 docker-compose 文件中添加了一个卷挂载,该文件将本地项目目录挂载到容器 python 目录中。

volumes:
- ./nb/python3.6:/usr/local/lib/python3.6

感谢@EelkevandenBos 帮助我意识到问题仅限于 docker-compose,并且仅在使用 docker 时不存在。之后问题就很容易找到了。

我忘记了我做过这件事。我使用挂载的目标是限制下载 python 库所花费的时间,因为图像使用了许多相当大的库,并且只要您对需求列表进行更改,就必须重新下载所有库。我的想法是,我使用一个卷,即使重建容器时库也会被保存和重新加载,这会减少下载时间。如果有人对如何执行此操作有任何想法,请在评论中告诉我。

关于docker 容器中的 Python 3.6 无法启动,只是崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53811306/

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