Google Colab运行报No module named 'miner_config'错误
ModuleNotFoundError: No module named 'miner_config'问题解决 报错核心原因
Python导入模块时会遍历环境变量中配置的模块搜索路径查找目标文件,代码中执行了from miner_config import MINER_ADDRESS, MINER_NODE_URL, PEER_NODES逻辑,但当前Colab运行环境中:
- 不存在名为
miner_config.py的本地自定义配置文件 - 公开PyPI源中没有名为
miner_config的可直接pip安装的第三方库
解释器无法找到对应模块,因此抛出导入错误。
问题相关代码片段
import time import hashlib import json import requests import base64 from flask import Flask, request from multiprocessing import Process, Pipe import ecdsa from miner_config import MINER_ADDRESS, MINER_NODE_URL, PEER_NODES node = Flask(__name__)
完整错误栈信息
ModuleNotFoundError Traceback (most recent call last) <ipython-input-27-9f096205089b> in <module>() 8 import ecdsa 9 ---> 10 from miner_config import MINER_ADDRESS, MINER_NODE_URL, PEER_NODES 11 12 node = Flask(__name__) ModuleNotFoundError: No module named 'miner_config'
可行解决方案
方案1:确认项目文件完整性
如果运行的是托管在Git等平台的完整项目,先检查是否漏拉配置文件:多数同类型挖矿/区块链项目会提供miner_config.example.py示例配置,需要将其重命名为miner_config.py并填写个人配置参数。如果仅复制了主代码片段、未上传配置文件,就会触发该报错。
拉取Git项目可直接在Colab单元格执行如下命令:!git clone 你的项目仓库地址 %cd 项目对应文件夹名拉取完成后修改好配置文件即可正常运行。
方案2:直接在Colab中生成配置文件
无需手动操作文件面板,在运行主代码前单独执行一个单元格,用魔法命令直接生成配置文件:%%writefile miner_config.py # 以下参数替换为你自己的实际配置 MINER_ADDRESS = "你的矿工钱包收款地址" MINER_NODE_URL = "http://当前节点的公网访问地址" # Colab运行Flask需搭配ngrok等工具做内网穿透获取公网地址 PEER_NODES = [] # 填入需要连接的其他对等节点地址,无额外节点可留空列表运行完该单元格后,Colab会自动在当前工作目录生成合法的配置文件,后续导入逻辑可正常执行。
方案3:临时测试可直接内嵌配置
如果只是快速验证代码逻辑,不需要单独拆分配置文件,可以直接删除原代码中的miner_config导入行,在主代码开头直接定义三个常量即可:# 删除原from miner_config import...行,替换为直接定义配置 MINER_ADDRESS = "你的矿工钱包收款地址" MINER_NODE_URL = "http://当前节点的公网访问地址" PEER_NODES = [] node = Flask(__name__)
注意:Google Colab的临时运行环境会在实例断开、重启后清空所有手动创建的文件,如果需要长期保留配置,可以将
miner_config.py存储在个人Google Drive中,运行代码前先挂载Drive,将配置文件所在目录加入Python模块搜索路径即可,无需每次重新创建配置。
内容的提问来源于stack exchange,提问作者Yvan Garcia

