我从终端运行代码有点新鲜。我通过运行:
从终端运行一个名为test_blbmktdata.py
的测试模块
python -m unittest test_blbmktdata.py
我收到了错误:
File "C:\Users\stacey\Documents\MERLIN\MERLIN - WORKING\dao_all\dao\iotools\tests\test_blbmktdata.py", line 3, in <module>
from dao.iotools.blbmktdata import *
ModuleNotFoundError: No module named 'dao'
文件夹dao
确实退出:
C:\Users\stacey\Documents\MERLIN\MERLIN - WORKING\dao_all\dao\iotools
请参阅下面的模块开头(问题所在)。
import unittest
import os.path
from dao.iotools.blbmktdata import *
class TestBlbMktData(unittest.TestCase):
staticName='StaticInstrumentData.csv'
如果我从终端运行代码,我是否需要更改从不同文件夹引用导入的方式?
由于
答案 0 :(得分:1)
python不知道在哪里寻找dao模型
在导入之前添加以下行
import sys
sys.path.append(<path to prj root directory>)
你还需要在dao的每个目录中都有一个 init .py文件(空文件),这样python才能将它识别为模块
答案 1 :(得分:0)
请检查是否正确设置了pythonpath环境变量。你可以参考这个。 How to add to the pythonpath in windows 7?
答案 2 :(得分:0)
除了shahaf的回答,还值得查看有关模块解析的官方文档:https://docs.python.org/3/tutorial/modules.html#the-module-search-path