在做python flask项目的时候遇到一个bug:
Traceback (most recent call last):
File "/usr/lib/python3.8/pkgutil.py", line 493, in find_loader
spec = importlib.util.find_spec(fullname)
File "/usr/lib/python3.8/importlib/util.py", line 94, in find_spec
parent = __import__(parent_name, fromlist=['__path__'])
ModuleNotFoundError: No module named '/localdata/xxxx/book-portal_v1'
解决方案
1、首先看了下我的目录文件,名称叫’/localdata/xxxx/book-portal_v1.3
’,注意在项目名称中有'.'
符号;
2、然后我利用了vscode的debug,逐步进入到发生异常的函数里面(/usr/lib/python3.8/importlib/util.py/find_spec
),发现了这一条语句:parent_name = fullname.rpartition('.')[0]
,这条语句没执行之前,变量fullname = /localdata/xxxxx/book-portal_v1.3
没有问题,当执行这条语句之后,也就是将fullname
取‘.’
符号前的部分,parent_name
就变成了’/localdata/xxxx/book-portal_v1
’,而不是我想要的’/localdata/xxxx/book-portal_v1.3
’。
python模块取名的时候,名字中不要出现 ‘.’
符号
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)