首页 > 解决方案 > ModuleNotFoundError:将 python3 安装到本地文件夹后没有名为“_socket”的模块

问题描述

我将 Python 3.7.4 从源安装到本地文件夹。安装没有产生任何错误,但二进制文件不起作用。

这就是我安装和设置软件所做的

./configure --prefix=/usr/local/python3.7.4
make -j 8 install 
export PYTHONHOME="/usr/local/python3.7.4/"
export PYTHONPATH="/usr/local/python3.7.4/lib/python3.7/site-packages/"

这就是我尝试运行 python3 时得到的

/usr/local/python3.7.4/bin/python3
Python 3.7.4 (default, Sep  4 2019, 19:14:06) 
[GCC 4.8.3 20140627 [gcc-4_8-branch revision 212064]] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/etc/pythonstart", line 7, in <module>
    import readline
ModuleNotFoundError: No module named 'readline'

这就是我从 pip3 得到的:

/usr/local/python3.7.4/bin/pip3
Traceback (most recent call last):
  File "/usr/local/python3.7.4/bin/pip3", line 6, in <module>
    from pip._internal import main
  File "/usr/local/python3.7.4/lib/python3.7/site-packages/pip/_internal/__init__.py", line 19, in <module>
    from pip._vendor.urllib3.exceptions import DependencyWarning
  File "/usr/local/python3.7.4/lib/python3.7/site-packages/pip/_vendor/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/usr/local/python3.7.4/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 7, in <module>
    from socket import error as SocketError, timeout as SocketTimeout
  File "/usr/local/python3.7.4/lib/python3.7/socket.py", line 49, in <module>
    import _socket
ModuleNotFoundError: No module named '_socket'

我觉得问题的核心是本地安装。

如果我的问题微不足道,我很抱歉。我尝试用谷歌搜索它没有成功。

感谢您的时间。

标签: pythonpython-3.xdirectoryinstallationlocal

解决方案


通过向 PYTHONPATH 变量添加更多路径解决了该问题

export PYTHONPATH="/usr/local/python3.7.4/lib/python3.7/site-packages/:/usr/local/python3.7.4/:/usr/local/python3.7.4/lib64/python3.7/lib-dynload/"

推荐阅读