1、报错信息
2、安装libffi-devel
[root@linuxprobe Python-3.9.1]# yum install libffi-devel Updating Subscription Management repositories. Unable to read consumer identity This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Last metadata expiration check: 0:13:13 ago on Thu 17 Dec 2020 09:05:04 PM CST. Dependencies resolved. ===================================================================================================================================== Package Arch Version Repository Size ===================================================================================================================================== Installing: libffi-devel x86_64 3.1-18.el8 BaseOS 28 k Transaction Summary ===================================================================================================================================== Install 1 Package Total size: 28 k Installed size: 27 k Is this ok [y/N]: y Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : libffi-devel-3.1-18.el8.x86_64 1/1 Running scriptlet: libffi-devel-3.1-18.el8.x86_64 1/1 Verifying : libffi-devel-3.1-18.el8.x86_64 1/1 Installed products updated. Installed: libffi-devel-3.1-18.el8.x86_64 Complete!
3、再次make
[root@linuxprobe Python-3.9.1]# make CC='gcc -pthread' LDSHARED='gcc -pthread -shared ' OPT='-DNDEBUG -g -fwrapv -O3 -Wall' _TCLTK_INCLUDES='' _TCLTK_LIBS='' ./python -E ./setup.py build running build running build_ext INFO: Can't locate Tcl/Tk libs and/or headers building '_ctypes' extension gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I/usr/include -I./Include -I. -I/usr/local/include -I/home/software/Python-3.9.1/Include -I/home/software/Python-3.9.1 -c /home/software/Python-3.9.1/Modules/_ctypes/_ctypes.c -o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/_ctypes.o -DPy_BUILD_CORE_MODULE -DHAVE_FFI_PREP_CIF_VAR=1 -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1 gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I/usr/include -I./Include -I. -I/usr/local/include -I/home/software/Python-3.9.1/Include -I/home/software/Python-3.9.1 -c /home/software/Python-3.9.1/Modules/_ctypes/callbacks.c -o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/callbacks.o -DPy_BUILD_CORE_MODULE -DHAVE_FFI_PREP_CIF_VAR=1 -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1 gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I/usr/include -I./Include -I. -I/usr/local/include -I/home/software/Python-3.9.1/Include -I/home/software/Python-3.9.1 -c /home/software/Python-3.9.1/Modules/_ctypes/callproc.c -o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/callproc.o -DPy_BUILD_CORE_MODULE -DHAVE_FFI_PREP_CIF_VAR=1 -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1 gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I/usr/include -I./Include -I. -I/usr/local/include -I/home/software/Python-3.9.1/Include -I/home/software/Python-3.9.1 -c /home/software/Python-3.9.1/Modules/_ctypes/cfield.c -o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/cfield.o -DPy_BUILD_CORE_MODULE -DHAVE_FFI_PREP_CIF_VAR=1 -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1 gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I/usr/include -I./Include -I. -I/usr/local/include -I/home/software/Python-3.9.1/Include -I/home/software/Python-3.9.1 -c /home/software/Python-3.9.1/Modules/_ctypes/stgdict.c -o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/stgdict.o -DPy_BUILD_CORE_MODULE -DHAVE_FFI_PREP_CIF_VAR=1 -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1 gcc -pthread -shared build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/_ctypes.o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/callbacks.o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/callproc.o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/cfield.o build/temp.linux-x86_64-3.9/home/software/Python-3.9.1/Modules/_ctypes/stgdict.o -L/usr/local/lib -lffi -ldl -o build/lib.linux-x86_64-3.9/_ctypes.cpython-39-x86_64-linux-gnu.so Python build finished successfully! The necessary bits to build these optional modules were not found: _dbm _gdbm _sqlite3 _tkinter _uuid nis readline To find the necessary bits, look in setup.py in detect_modules() for the module's name. The following modules found by detect_modules() in setup.py, have been built by the Makefile instead, as configured by the Setup files: _abc atexit pwd time running build_scripts copying and adjusting /home/software/Python-3.9.1/Tools/scripts/pydoc3 -> build/scripts-3.9 copying and adjusting /home/software/Python-3.9.1/Tools/scripts/idle3 -> build/scripts-3.9 copying and adjusting /home/software/Python-3.9.1/Tools/scripts/2to3 -> build/scripts-3.9 changing mode of build/scripts-3.9/pydoc3 from 644 to 755 changing mode of build/scripts-3.9/idle3 from 644 to 755 changing mode of build/scripts-3.9/2to3 from 644 to 755 renaming build/scripts-3.9/pydoc3 to build/scripts-3.9/pydoc3.9 renaming build/scripts-3.9/idle3 to build/scripts-3.9/idle3.9 renaming build/scripts-3.9/2to3 to build/scripts-3.9/2to3-3.9 [root@linuxprobe Python-3.9.1]# python bash: python: command not found... Failed to search for file: Cannot update read-only repo [root@linuxprobe Python-3.9.1]# ls aclocal.m4 config.sub install-sh Makefile Objects pyconfig.h python-config.py build configure Lib Makefile.pre Parser pyconfig.h.in python-gdb.py CODE_OF_CONDUCT.md configure.ac libpython3.9.a Makefile.pre.in PC python README.rst config.guess Doc LICENSE Misc PCbuild Python setup.py config.log Grammar m4 Modules Programs Python-3.9.1.tgz Tools config.status Include Mac netlify.toml pybuilddir.txt python-config [root@linuxprobe Python-3.9.1]# ./python Python 3.9.1 (default, Dec 17 2020, 21:16:26) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux Type "help", "copyright", "credits" or "license" for more information.