未导入Python子模块

2024-09-30 14:39:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在Eclipse中Pydev项目的文件路径:

project
   |
   +----tests
   |      |
   |      +----subtests
   |      |       |
   |      |       +----__init__.py
   |      |       |
   |      |       +----test1.py
   |      |
   |      +----__init__.py
   |      |
   |      +----test2.py      
   |              
   +----mods
         |
         +----__init__.py
         |
         +----submods1
                 |
                 +----__init__.py
                 |
                 +----submods2
                         |
                         +----__init__.py
                         |
                         +----a.py
                         |
                         +----b.py
                         |
                        ...
                         |
                         +----z.py

test1和test2完全相同,所有init文件中只有注释。测试是从mods目录中获取模块以及这些模块的依赖关系。当我运行test1时,所有的模块都被找到了,但是test2总是在submods2中找不到相同的模块(我们称之为“z.py”)。但不知怎么的,它能找到其余的模块。并不是说它无法在z.py中导入某些内容,而是根本找不到该文件。在

测试2:

^{pr2}$

在这两个测试期间,sys.path的唯一区别是测试所在的目录,project/tests/subtests用于test1,project/tests用于test2。在

我不明白为什么test2不能导入z.py,但是test1可以,test2可以导入其余的模块。在


Tags: 模块文件项目py目录projectmodsinit
2条回答

我想我找到了解决办法。在我的test2的Run Configurations中,Arguments选项卡中的Working directory有一个自定义路径${workspace_loc:project/tests/},我将其切换到默认路径${project_loc:/selected project name},这似乎解决了这个问题。虽然我不明白这是如何解决问题的,但结果对我来说已经足够好了。在

要帮助诊断问题,请执行以下操作:

从mods.submod1型导入子模块2 子打印(MOD2)

我猜这不是你期望的模块。在

您使用的是什么Python版本?在

相关问题 更多 >