我有一个 Python 项目,基本设置如下:
imptest.py
utils/something.py
utils/other.py
以下是脚本的内容:
imptest.py
#!./venv/bin/python
import utils.something as something
import utils.other as other
def main():
"""
Main function.
"""
something.do_something()
other.do_other()
if __name__ == "__main__":
main()
something.py
#import other
def do_something():
print("I am doing something")
def main():
"""
Main function
"""
do_something()
#other.do_other()
if __name__ == "__main__":
main()
other.py
def do_other():
print("do other thing!")
def main():
"""
Main function
"""
do_other()
if __name__ == "__main__":
main()
imptest.py是主文件,它会定期调用utils函数来完成一些操作。
正如你所看到的,“something.py”文件中我已经注释掉了一些代码,其中我导入了“other”模块进行测试。
但是当我要测试something.py中的某些函数时,我必须运行something.py文件并取消注释导入语句。
这种做法感觉有点笨拙。
如果我把
import other
如果取消注释并运行imptest.py,会出现以下错误:
Traceback (most recent call last):
File "imptest.py", line 5, in <module>
import utils.something as something
File "...../projects/imptest/utils/something.py", line 3, in <module>
import other
ModuleNotFoundError: No module named 'other'
有更好的方法吗?