无法使用 Python 3.8 在 Ubuntu 18.04 上创建 virtualenv

sku*_*erk 16 python-3.x dockerfile ubuntu-18.04

我有一个 Docker 文件,内容如下:

FROM ubuntu:18.04
RUN apt-get update --fix-missing
RUN apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:deadsnakes/ppa
RUN apt-get install -y build-essential
RUN apt-get install -y python3.8
RUN apt-get install -y python3-pip python3.8-venv python3.8-dev
ENV VIRTUAL_ENV=/run/env
RUN python3.8 -m venv $VIRTUAL_ENV
Run Code Online (Sandbox Code Playgroud)

构建时出现此错误:

Step 8/8 : RUN python3.8 -m venv $VIRTUAL_ENV
---> Running in d05326069de2
Error: Command '['/run/env/bin/python3.8', '-Im', 'ensurepip', '--upgrade', '--default-pip']' 
returned non-zero exit status 2.
Run Code Online (Sandbox Code Playgroud)

当我尝试在它之前添加这一行时:

RUN python3.8 -m ensurepip --upgrade
Run Code Online (Sandbox Code Playgroud)

我收到错误:

File "/usr/lib/python3.8/distutils/sysconfig.py", line 466, in _init_posix
ModuleNotFoundError: No module named '_sysconfigdata__x86_64-linux-gnu'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

sla*_*nic 34

作为解决方法

sudo ln -s   /usr/lib/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py  /usr/lib/python3.8/_sysconfigdata__x86_64-linux-gnu.py
Run Code Online (Sandbox Code Playgroud)

但我希望它很快会在 Ubuntu 中得到修复。

  • 可以确认这在 Ubuntu 20.04.1 上为我解决了类似的问题 (4认同)
  • 对于Python3.9:`sudo ln -s /usr/lib/python3.9/_sysconfigdata__linux_x86_64-linux-gnu.py /usr/lib/python3.9/_sysconfigdata__x86_64-linux-gnu.py`在Ubuntu 18.04上工作得非常顺利还有 (3认同)
  • 我收到以下错误:`ln:无法创建符号链接'/usr/lib/python3.8/_sysconfigdata__x86_64-linux-gnu.py':文件存在`并且问题仍然存在。 (2认同)
  • 我在 Ubuntu 20.04 中尝试从 ppa 安装 python3.9 时遇到这个问题。解决方案正在发挥作用。不过,您可以使用硬链接。 (2认同)

CGF*_*FoX 6

对我来说,我可以修复我的 Python 3.8 安装和问题:

sudo apt --fix-broken install
Run Code Online (Sandbox Code Playgroud)

  • 这个评论值得更多的点赞。它为我解决了这个问题,而且似乎没有偷工减料。 (2认同)