python - 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'
我觉得问题的核心是本地安装。
如果我的问题微不足道,我很抱歉。我尝试用谷歌搜索它没有成功。
感谢您的时间。
解决方案
通过向 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/"
推荐阅读
- docker - 元数据库 H2 丢失数据
- java - Mysql:在父表中成功事务后更新存档表
- keras - keras中的monitor有什么作用?
- java - 在 jboss server 7.0 中部署 war 文件
- ios - iOS:获取“UIButton”的“UIViewController”
- c++ - 程序无法从双向链表中读取单个数据
- google-apps-script - doGet(e) 用于电子表格中的显示单元格
- asp.net - 通过预先加载获取所有列
- javascript - 停止在 html 中加载表单
- sql - 是否可以在 Oracle 18c 的触发器中使用 GRANT?