linux服务器安装python 3.9出现Could not import runpy module

小白一枚,分享给一样的小白。

结合几个博主的文章,目前已解决,推荐阅读centos 7 升级Python3.8.2_IT_Migrant_worker的博客-CSDN博客

我的问题是在指定安装目录时,在./configure --prefix=/usr/local/python3后,又进行了./configure –enable-optimizations。

在编译make 和 makeinstall时出错,错误码如下:

make build_all CFLAGS_NODIST=" -fprofile-use -fprofile-correction" LDFLAGS_NODIST=""
make[1]: Entering directory `/usr/local/src/Python-3.8.0'
./python -E -S -m sysconfig --generate-posix-vars ;\
if test $? -ne 0 ; then \
    echo "generate-posix-vars failed" ; \
    rm -f ./pybuilddir.txt ; \
    exit 1 ; \
fi
Could not import runpy module
Traceback (most recent call last):
  File "/usr/local/src/Python-3.8.0/Lib/runpy.py", line 15, in <module>
    import importlib.util
  File "/usr/local/src/Python-3.8.0/Lib/importlib/util.py", line 14, in <module>
    from contextlib import contextmanager
  File "/usr/local/src/Python-3.8.0/Lib/contextlib.py", line 4, in <module>
    import _collections_abc
SystemError: <built-in function compile> returned NULL without setting an error
generate-posix-vars failed
make[1]: *** [pybuilddir.txt] Error 1
make[1]: Leaving directory `/usr/local/src/Python-3.8.0'
make: *** [profile-opt] Error 2

网上多数解决办法是:

在低版本的gcc中带有–enable-optimizations参数
解决方法(不推荐使用方法1):
1、升级gcc至高版本,gcc 8.1.0已修复此问题
2、./configure参数中去掉–enable-optimizations

所以一直在尝试升级gcc,无意中看到了make clean的操作用法,清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。(这里make distclean应该也是可行的,类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile文件。)

通过make clean 

之后重新进行编译make

make install

成功安装python3.9.7

[root@VM-16-8-centos bin]# /python3/bin/python3.9
Python 3.9.7 (default, Oct 26 2021, 15:54:02) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.

希望对大家有帮助,因为宝塔面板自带的是2.7.5,下一步需要配置python3为默认,还在学习,后续分享

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值