Python脚本导入sec_api报ModuleNotFoundError错误如何解决
问题现象
运行调用sec_api的Python脚本时抛出模块找不到的错误,已将模块文件放在脚本同目录、且已申请有效API密钥,此前认为路径正确、模块可访问即可满足运行要求,无法定位配置错误。
测试代码如下:
from sec_api import QueryApi queryApi = QueryApi(api_key="YOUR_API_KEY") query = { "query": { "query_string": { "query": "ticker:TSLA AND filedAt:{2020-01-01 TO 2020-12-31} AND formType:\"10-Q\"" } }, "from": "0", "size": "10", "sort": [{ "filedAt": { "order": "desc" } }] } filings = queryApi.get_filings(query) print(filings)
运行后抛出的报错信息:
File "C:\Users\myusername\OneDrive\Desktop\classes\SP_22_courses\CS1110\pye_files\sec.py", line 7, in <module> from sec_api import QueryApi ModuleNotFoundError: No module named 'sec_api'
故障原因
- 脚本命名冲突:你当前运行的脚本文件名为
sec.py,Python导入模块时会优先搜索脚本所在的当前目录,会优先将你自己写的sec.py识别为目标依赖的相关模块,直接打断sec_api的正常导入链路,这是本次报错的核心原因。 - 安装方式错误:
sec_api是需要通过包管理工具安装的第三方库,手动把模块文件丢到脚本同目录的方式,无法自动安装该库的关联依赖,也不符合Python第三方包的导入路径规则。
解决步骤
- 重命名当前脚本:把
sec.py改成和依赖名不冲突的名称,比如sec_10q_query.py,同时删除同目录下的__pycache__文件夹,清除旧的编译缓存避免干扰。 - 正确安装依赖:打开你运行脚本所用的Python解释器对应的终端,执行安装命令
python -m pip install sec-api,用官方包管理方式完成安装,自动处理所有关联依赖。如果电脑存在多版本Python,这个命令可以保证包装到你当前调用的Python环境里,不会出现装了包但解释器找不到的问题。 - 验证运行:安装完成后执行
python -m pip show sec-api,如果能正常输出包的版本、安装路径信息,直接运行重命名后的脚本即可,不需要手动把任何模块文件复制到脚本目录。
内容的提问来源于stack exchange,提问作者thxCu
相关产品推荐
相关产品推荐

