Python ModuleNotFoundError:没有名为'####';在命令行中运行.py脚本时
这是简化的演示Python ModuleNotFoundError:没有名为'####';在命令行中运行.py脚本时,python,Python,这是简化的演示 project-dir |__dir1 |__dir2 |__mod1 | |__func1.py | |__func2.py |__a.py |__b.py 当我在命令行中以D:\project dir>python dir1/dir2/a.py的形式运行此脚本时,出现错误modulenofounde
project-dir
|__dir1
|__dir2
|__mod1
| |__func1.py
| |__func2.py
|__a.py
|__b.py
当我在命令行中以
D:\project dir>python dir1/dir2/a.py
的形式运行此脚本时,出现错误modulenofounderror:没有名为“dir1”的模块。但是当直接在IDE中运行这个脚本a.py
时,它就可以工作了。如何在命令行中正确运行此脚本?您应该在a.py
中执行此操作:
#/dir1/dir2/a.py
从b导入垃圾邮件
从mod1.func1导入栏
从mod1.func2导入foo
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
print('这是'a`)
垃圾邮件()
bar()
foo()
Python允许您导入本地目录中的内容
编辑:
你说你有错误。根据您使用的python版本,您可能需要在每个模块(一个虚拟模块)下添加一个虚拟的\uuuu init\uuuuuuuuupy.py
文件。我正在使用python 3.7并遵循@KetZoomer的答案,而没有添加\uuuuu init\uuuuuuuuupy
文件,而一些未解析的引用“###
仍然存在。是的,未解析引用之所以发生,是因为您没有\uuu init\uuuu.py
,请阅读@Abhilash的注释谢谢,它可以工作,IDE中有一些语法包装,例如未解析引用“b”
。如何解决这个问题?@TAOGS,请选择正确答案(勾选),谢谢
# /dir1/dir2/mod1/func1.py
def bar():
print('this is func `bar` in `func1`')
# /dir1/dir2/mod1/func2.py
def foo():
print('this is func `foo` in `func2`')
# /dir1/dir2/b.py
def spam():
print('this is func `spam` in `b`')
# /dir1/dir2/a.py
from dir1.dir2.b import spam
from dir1.dir2.mod1.func1 import bar
from dir1.dir2.mod1.func2 import foo
if __name__ == '__main__':
print('this is `a`)
spam()
bar()
foo()