在 OpenSuSE Linux 上从源代码安装 Python 3 时如何解决缺少 msvcrt 模块的问题?

在 OpenSuSE Linux 上从源代码安装 Python 3 时如何解决缺少 msvcrt 模块的问题?

为了测试 Python 应用程序的新版本,我需要在我的 OpenSuSE 15.4 机器上安装最新稳定的 Python 版本 /* 默认情况下,该机器附带 Python 3.6 */。因此,我下载了 Python 3.10.11 并构建了它。make install确实有效,但下一个命令由于缺少模块而无效msvcrt

╭─jacek@epica ~/bin/tmp/Python-3.10.11/dist/bin  
╰─➤  ./python3 -m pip install --upgrade pip 
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
  File "/home/jacek/bin/tmp/Python-3.10.11/dist/lib/python3.10/subprocess.py", line 69, in <module>
    import msvcrt
ModuleNotFoundError: No module named 'msvcrt'

缺失的模块真的是 Microsoft Visual C++ 运行时的接口吗?如果是,为什么在 Linux 机器上安装 Python 时需要它?Python 网站上似乎只有一种源 tarball(尽管有两种不同的存档格式)。顺便说一句,python home / dir 变量根本没有设置:

╭─jacek@epica ~/bin/tmp/Python-3.10.11/dist/bin  
╰─➤  echo $PYTHONHOME                                                       1 ↵

╭─jacek@epica ~/bin/tmp/Python-3.10.11/dist/bin  
╰─➤  echo $PYTHONPATH

╭─jacek@epica ~/bin/tmp/Python-3.10.11/dist/bin  
╰─➤  

但是,手动设置 python 主目录(就我而言/home/jacek/bin/tmp/Python-3.10.11/dist:)没有帮助。

答案1

好的,我在 StackOverflow 上的以下一个(相当旧的)帖子中找到了解决方案:

Python 3.7 无法在 openSUSE Leap 42.3 上安装

内容如下:

ln -s $PYTHONHOME/lib64/python3.10.11/lib-dynload/ $PYTHONHOME/lib/python3.10.11/lib-dynload

但是请不要问我为什么配置过程没有创建符号链接。

相关内容