一 安装readline包之后python3.6导入模块异常退出
Type "help", "copyright", "credits" or "license" for more information. >>> import time *** Error in `python3.6': munmap_chunk(): invalid pointer: 0x00007f4fddde30b0 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7ada4)[0x7f4fdcfb6da4] python3.6(PyOS_Readline+0xec)[0x5cc11c] python3.6[0x4471d0] python3.6[0x448b18] python3.6(PyTokenizer_Get+0x9)[0x449959] python3.6[0x44575d] python3.6(PyParser_ASTFromFileObject+0x89)[0x427979] python3.6[0x427b8b] python3.6(PyRun_InteractiveLoopFlags+0x76)[0x427eb6] python3.6(PyRun_AnyFileExFlags+0x3c)[0x42803c] python3.6(Py_Main+0xc44)[0x43b894] python3.6(main+0x162)[0x41d922] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f4fdcf5db35] python3.6[0x41d9e0] ======= Memory map: ======== 00400000-00670000 r-xp 00000000 fd:00 54564860 /usr/local/python3.6/bin/python3.6 0086f000-00870000 r--p 0026f000 fd:00 54564860 /usr/local/python3.6/bin/python3.6 00870000-008d4000 rw-p 00270000 fd:00 54564860 /usr/local/python3.6/bin/python3.6 008d4000-00905000 rw-p 00000000 00:00 0 027e9000-028a9000 rw-p 00000000 00:00 0 [heap] 7f4fd6166000-7f4fd617b000 r-xp 00000000 fd:00 472101 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7f4fd617b000-7f4fd637a000 ---p 00015000 fd:00 472101 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7f4fd637a000-7f4fd637b000 r--p 00014000 fd:00 472101 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7f4fd637b000-7f4fd637c000 rw-p 00015000 fd:00 472101 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7f4fd637c000-7f4fd63a1000 r-xp 00000000 fd:00 58903 /usr/lib64/libtinfo.so.5.9 7f4fd63a1000-7f4fd65a1000 ---p 00025000 fd:00 58903 /usr/lib64/libtinfo.so.5.9 7f4fd65a1000-7f4fd65a5000 r--p 00025000 fd:00 58903 /usr/lib64/libtinfo.so.5.9 7f4fd65a5000-7f4fd65a6000 rw-p 00029000 fd:00 58903 /usr/lib64/libtinfo.so.5.9 7f4fd65a6000-7f4fd65cc000 r-xp 00000000 fd:00 54964 /usr/lib64/libncurses.so.5.9 7f4fd65cc000-7f4fd67cb000 ---p 00026000 fd:00 54964 /usr/lib64/libncurses.so.5.9 7f4fd67cb000-7f4fd67cc000 r--p 00025000 fd:00 54964 /usr/lib64/libncurses.so.5.9 7f4fd67cc000-7f4fd67cd000 rw-p 00026000 fd:00 54964 /usr/lib64/libncurses.so.5.9 7f4fd67cd000-7f4fd6808000 r-xp 00000000 fd:00 35350018 /usr/local/python3.6/lib/python3.6/site-packages/readline.cpython-36m-x86_64-linux-gnu.so 7f4fd6808000-7f4fd6a08000 ---p 0003b000 fd:00 35350018 /usr/local/python3.6/lib/python3.6/site-packages/readline.cpython-36m-x86_64-linux-gnu.so 7f4fd6a08000-7f4fd6a0a000 r--p 0003b000 fd:00 35350018 /usr/local/python3.6/lib/python3.6/site-packages/readline.cpython-36m-x86_64-linux-gnu.so 7f4fd6a0a000-7f4fd6a11000 rw-p 0003d000 fd:00 35350018 /usr/local/python3.6/lib/python3.6/site-packages/readline.cpython-36m-x86_64-linux-gnu.so 7f4fd6a11000-7f4fd6a13000 rw-p 00000000 00:00 0 7f4fd6a13000-7f4fdcf3c000 r--p 00000000 fd:00 262397 /usr/lib/locale/locale-archive 7f4fdcf3c000-7f4fdd0f2000 r-xp 00000000 fd:00 262350 /usr/lib64/libc-2.17.so 7f4fdd0f2000-7f4fdd2f2000 ---p 001b6000 fd:00 262350 /usr/lib64/libc-2.17.so 7f4fdd2f2000-7f4fdd2f6000 r--p 001b6000 fd:00 262350 /usr/lib64/libc-2.17.so 7f4fdd2f6000-7f4fdd2f8000 rw-p 001ba000 fd:00 262350 /usr/lib64/libc-2.17.so 7f4fdd2f8000-7f4fdd2fd000 rw-p 00000000 00:00 0 7f4fdd2fd000-7f4fdd3fd000 r-xp 00000000 fd:00 262358 /usr/lib64/libm-2.17.so 7f4fdd3fd000-7f4fdd5fd000 ---p 00100000 fd:00 262358 /usr/lib64/libm-2.17.so 7f4fdd5fd000-7f4fdd5fe000 r--p 00100000 fd:00 262358 /usr/lib64/libm-2.17.so 7f4fdd5fe000-7f4fdd5ff000 rw-p 00101000 fd:00 262358 /usr/lib64/libm-2.17.so 7f4fdd5ff000-7f4fdd601000 r-xp 00000000 fd:00 262384 /usr/lib64/libutil-2.17.so 7f4fdd601000-7f4fdd800000 ---p 00002000 fd:00 262384 /usr/lib64/libutil-2.17.so 7f4fdd800000-7f4fdd801000 r--p 00001000 fd:00 262384 /usr/lib64/libutil-2.17.so 7f4fdd801000-7f4fdd802000 rw-p 00002000 fd:00 262384 /usr/lib64/libutil-2.17.so 7f4fdd802000-7f4fdd804000 r-xp 00000000 fd:00 262356 /usr/lib64/libdl-2.17.so 7f4fdd804000-7f4fdda04000 ---p 00002000 fd:00 262356 /usr/lib64/libdl-2.17.so 7f4fdda04000-7f4fdda05000 r--p 00002000 fd:00 262356 /usr/lib64/libdl-2.17.so 7f4fdda05000-7f4fdda06000 rw-p 00003000 fd:00 262356 /usr/lib64/libdl-2.17.so 7f4fdda06000-7f4fdda1d000 r-xp 00000000 fd:00 262376 /usr/lib64/libpthread-2.17.so 7f4fdda1d000-7f4fddc1c000 ---p 00017000 fd:00 262376 /usr/lib64/libpthread-2.17.so 7f4fddc1c000-7f4fddc1d000 r--p 00016000 fd:00 262376 /usr/lib64/libpthread-2.17.so 7f4fddc1d000-7f4fddc1e000 rw-p 00017000 fd:00 262376 /usr/lib64/libpthread-2.17.so 7f4fddc1e000-7f4fddc22000 rw-p 00000000 00:00 0 7f4fddc22000-7f4fddc42000 r-xp 00000000 fd:00 262343 /usr/lib64/ld-2.17.so 7f4fddc83000-7f4fdde2c000 rw-p 00000000 00:00 0 7f4fdde3e000-7f4fdde41000 rw-p 00000000 00:00 0 7f4fdde41000-7f4fdde42000 r--p 0001f000 fd:00 262343 /usr/lib64/ld-2.17.so 7f4fdde42000-7f4fdde43000 rw-p 00020000 fd:00 262343 /usr/lib64/ld-2.17.so 7f4fdde43000-7f4fdde44000 rw-p 00000000 00:00 0 7fffdde49000-7fffdde6a000 rw-p 00000000 00:00 0 [stack] 7fffddfa1000-7fffddfa3000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 已放弃(吐核
经过一翻百度然后自己看包有两处信息是重要的,主要看红色部分
Stand-alone GNU readline module Some platforms, such as macOS, do not ship with GNU readline installed. The readline extension module in the standard library of Mac "system" Python uses NetBSD's editline (libedit) library instead, which is a readline replacement with a less restrictive software license. As the alternatives to GNU readline do not have fully equivalent functionality, it is useful to add proper readline support to these platforms. This module achieves this by bundling the standard Python readline module with the GNU readline source code, which is compiled and statically linked to it. The end result is a package which is simple to install and requires no extra shared libraries. The module is called gnureadline so as not to clash with the readline module in the standard library. This keeps polite installers such as pip happy and is sufficient for shells such as IPython. Please take note that IPython does not depend on gnureadline anymore since version 5.0 as it now uses prompt_toolkit instead. In order to use this module in the standard Python shell it has to be installed with the more impolite easy_install from setuptools. It is recommended that you use pip >= 8.0 together with setuptools >= 0.8 to install gnureadline. This will download a binary wheel from PyPI if available, thereby bypassing the need for compilation and its slew of potential problems (especially on macOS). The module can be used with both Python 2.x and 3.x, and has been tested with Python versions 2.6, 2.7, 3.2, 3.3, 3.4, 3.5 and 3.6. The first three numbers of the module version reflect the version of the underlying GNU readline library (major, minor and patch level), while any additional fourth number distinguishes different module updates based on the same readline library. This module is usually unnecessary on Linux and other Unix systems with default readline support. An exception is if you have a Python distribution that does not include GNU readline due to licensing restrictions (such as ActiveState's ActivePython). If you are using Windows, which also ships without GNU readline, you might want to consider using the pyreadline module instead, which is a readline replacement written in pure Python that interacts with the Windows clipboard.
信息二
[root@centos7 python3.6]# ./bin/pip3 search readline readline (6.2.4.1) - The standard Python readline extension statically linked against the GNU readline library. micropython-readline (0.0.0) - Dummy readline module for MicroPython urwid-readline (0.7) - A textbox edit widget for urwid that supports readline shortcuts pygnurl (1.0.1) - Dynamic GNU Readline interface pyreadline (2.1) - A python implmementation of GNU readline. gnureadline (6.3.8) - The standard Python readline extension statically linked against the GNU readline library.
解决方法:
./bin/pip3 install gnureadline 最后导入模块不会报错了
二 pip 安装模块包的时候报错
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
问题:缺少openssl-devel包
解决:
yum -y install openssl-devel
vim /usr/local/python3.6.6/Python-3.6.6/Modules/Setup
找到下面的命令,去掉注释
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
重新编译
make && make install