You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入本地模块报错:ModuleNotFoundError: No module named 'common_lib'

Python导入本地模块报错:ModuleNotFoundError: No module named 'common_lib'

嗨,我来帮你捋捋这个模块导入的坑!看了你的描述,你已经试了不少办法还是卡壳了,别着急,咱们一步步来解决:

先再明确下你的项目结构,方便大家理解问题根源:

my_project/
├── common_lib/
│   ├── __init__.py
│   ├── file1.py
│   └── file2.py
└── module1/
    ├── src/
    │   ├── __init__.py
    │   ├── script1.py
    │   └── script2.py
    ├── __init__.py
    └── main.py

你在main.py和script1.py里跨目录导入common_lib的函数,但在module1目录下运行python main.py时触发了找不到模块的错误,下面给你几个靠谱的解决思路:


方案1:切换到项目根目录运行脚本

这是最快捷的临时解法!你当前是在module1目录下运行脚本,Python的模块搜索路径默认是当前工作目录,它找不到上一级的common_lib。你只需要切换到my_project目录再执行脚本:

cd 你的my_project目录绝对路径
python module1/main.py

这样Python就能在项目根目录找到common_lib了,因为根目录会被自动加入到模块搜索路径中。

方案2:手动给Python添加模块搜索路径

如果你不想每次都切换目录,可以在要导入模块的脚本开头,手动把项目根目录加到Python的搜索路径里。比如在main.py的最开头加上这段代码:

import sys
from pathlib import Path

# 找到项目根目录(也就是my_project文件夹)
project_root = Path(__file__).parent.parent
# 把根目录加入到Python的模块搜索路径
sys.path.append(str(project_root))

# 现在再导入就没问题了
from common_lib.file1 import func1

同理,script1.py里也可以加类似的代码,只是要多往上跳一级目录:

import sys
from pathlib import Path

# script1在module1/src下,需要往上跳三级到my_project
project_root = Path(__file__).parent.parent.parent
sys.path.append(str(project_root))

from common_lib.file2 import func2

这段代码的好处是不管你在哪个目录运行脚本,都能正确定位到项目根目录,通用性拉满。

方案3:正确用setup.py安装本地模块

你提到已经用setup.py安装了common_lib,但大概率是安装方式不对。正确操作如下:

  1. 确保你的setup.py放在my_project目录下,参考标准结构写:
from setuptools import setup, find_packages

setup(
    name="common_lib",
    version="0.1",
    packages=find_packages(),
)
  1. 打开PowerShell切换到my_project目录,用开发模式安装:
cd path/to/my_project
pip install -e .

这里的-e是开发模式的意思,它会把你的common_lib模块链接到Python的site-packages目录里,这样不管你在哪个目录运行脚本,Python都能直接找到它,而且你修改common_lib的代码后,不需要重新安装就能生效,特别适合开发阶段用。

关于环境变量和VSCode配置的小提醒

你之前修改了系统环境变量和VSCode的settings.json,但这些配置有时候不会立即生效(比如改了环境变量没重启PowerShell),而且依赖编辑器配置的话,换个终端或者电脑就又出问题了,所以还是上面的几种方法更靠谱。


备注:内容来源于stack exchange,提问作者SheCodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:15:30