无法在Ubuntu 18.04上使用Python 3.8创建虚拟环境

18

我有一个 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

在构建时,我遇到了这个错误:

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 python3.8 -m ensurepip --upgrade

我遇到了错误:

File "/usr/lib/python3.8/distutils/sysconfig.py", line 466, in _init_posix
ModuleNotFoundError: No module named '_sysconfigdata__x86_64-linux-gnu'

我该如何修复这个问题?

4个回答

41

作为解决方法

sudo ln -s   /usr/lib/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py  /usr/lib/python3.8/_sysconfigdata__x86_64-linux-gnu.py

但我希望在Ubuntu中很快就能解决这个问题。


1
哇,这个方法可行,但是有没有相应的错误报告可以跟进并记录这个问题呢? - casey
4
确认这解决了我在Ubuntu 20.04.1上类似的问题。 - Carsten Hansen
2
我遇到了以下错误:ln: failed to create symbolic link '/usr/lib/python3.8/_sysconfigdata__x86_64-linux-gnu.py': File exists,而且问题仍然存在。 - CGFoX
3
我在Ubuntu 20.04中尝试从ppa安装python3.9时遇到了这个问题。解决方案有效。不过你也可以使用硬链接。 - karlsebal
3
对于Python3.9,在Ubuntu 18.04上,sudo ln -s /usr/lib/python3.9/_sysconfigdata__linux_x86_64-linux-gnu.py /usr/lib/python3.9/_sysconfigdata__x86_64-linux-gnu.py 这个命令很有效。请注意不要更改原意。 - James Shapiro
显示剩余3条评论

6

对于我来说,我可以通过以下方式修复我的Python 3.8安装和这个问题:

sudo apt --fix-broken install

2
这个评论值得更多的赞。它为我解决了问题,而且似乎没有偷懒。 - AvinashK

4

抱歉,这是打包上的错误——我已经解决了 在这里

系统自带的python3-distuils(由Debian提供)和PPA提供的python3.x-venv模块之间存在着微妙的冲突。


免责声明:我是deadsnakes的维护者。


0

这真的很尴尬,但对我来说,问题在于我的计算机没有Pipfile所需的版本,因此我使用了pipenv install --python 3.8,其中3.8是我拥有的版本,而不是像Pipfile所需的3.9。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接