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:

>>> from mods.submod1.submod2 import z
    exec exp in global_vars, local_vars
  File "<console>", line 1, in <module>
ImportError: cannot import name z
>>> from mods.submod1 import submod2
>>> hasattr(submod2, 'z')
False

sys.path两次测试之间的唯一区别project/tests/subteststest1和project/teststest2所在的目录。

我无法弄清楚为什么test2无法导入z.py,但是test1可以并且test2可以导入其余模块。

用户名

我想我找到了解决方案。在我Run Configurations的测试2中,Working directoryArguments选项卡中有一个自定义路径${workspace_loc:project/tests/},我切换它的默认路径${project_loc:/selected project name}和这似乎是固定的问题。虽然我不知道如何解决问题,但结果对我来说已经足够了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章