# /app >
# 项目代码目录结构如下:
|python_project
|-__init__.py
|-apps
|-__init__.py
|-run.py
|-utils
|-__init__.py
|-MysqlHelper.py
在apps/run.py 代码如下
from utils import MysqlHelper
cd切换到项目路径,使用命令python3 apps/run.py
启动程序,出现导包错误如下:
ImportError: attempted relative import with no known parent package
解决方案:
在导包之前先判断一下python的搜索路径列表里面有没有项目路径, 当我使用命令python3 apps/run.py
启动程序,python的搜索路径列表获取到的项目路径是/app/python_project/apps
而不是项目根路径/app/python_project/
因此当使用绝对路径来执行部程序时就需要将项目根路径添加到sys.path中, 如下所示,这样就可以解决这个导包问题了
import sys
# sys.path是python的搜索模块的路径集,是一个list
print(sys.path)
sys.path.append('/app/python_project/')
from utils import MysqlHelper