我知道这个问题已经问过好几次了,但是在阅读了这些问题,并提出了一些建议后,我仍然感到困惑。
我的项目结构如下:
Project
|
src
|
root - has __init__.py
|
nested - has __init__.py
|
tests - has __init__.py
|
utilities - has __init__.py
|
services - has __init__.py
我已经成功地从Eclipse运行了unittest回归类,没有任何问题。
当我试图从命令行运行同一个类时(因为将运行该套件的其他用户无权访问Eclipse),我收到错误:
ImportError: No module named 'root'
从上面可以看到,模块根目录有一个__init__.py
所有__init__.py
模块都是完全空的。
我们将非常感谢您的帮助。
尝试将
sys.path.append
添加到导入列表中。对于任何一个遇到这个问题的人,只要一个便条,使用Gus E在接受答案中显示的内容和一些进一步的经验,我发现下面的内容非常有用,可以确保在需要时,我可以在我的机器或其他同事的机器上从命令行运行我的程序。
当我执行位于“嵌套”目录中的“main”方法时,它确保在执行时将“src”目录添加到PYTHONPATH中,这意味着以下所有导入都不会引发错误。
显然,您需要调整
os.path.join()
方法的“.”参数的数量,这取决于程序中执行主方法的位置如果有人在这里降落:
我也遇到了这个错误。在我的例子中,我在
path.sys.append(...)
处使用了~/my/path/
,修复程序将~
替换为显式路径名(如果您在linux shell上键入pwd
,或者使用os.path.expanduser(..)
,您可以查询它)相关问题 更多 >
编程相关推荐