Python 文件不能作为模块正常工作(可能只是在 VS 代码中?)

亚当·洛兹

在我向您展示问题之前,我将在这里举一个简单的例子:(请考虑阅读整个问题和重要说明)

-主文件夹:包含:+main.py +Extern 模块文件夹(名为 ex_modules)

-外部模块文件夹:包含:+module1.py +module2.py

main.py 需要 module1.pymodule2.py,但是 module1.py 只需要 module2.py

所以我考虑将 module2.py 导入到 module1.py 中,然后将 module1.py 导入到主文件中,这就是我的处理方式:

模块2.py:

def module2_function1():
    return something

def module2_function2():
    return something2

def module2_function3():
    return something3

模块1.py:

from module2 import *  #as I said, they are both in the same folder

def module1_function():
    module2_function1()
    module2_function2()

主要.py:

from ex_modules.module1 import *

module1_function() #a module1 function that uses module2 functions
module2_function3() #a module2 function

VS 代码在处理主文件时不显示任何警告,但是当我运行它时会出现此错误:

ModuleNotFoundError: No module named 'module2'
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
c:\some path xD\Main folder\main.py in <module>
----> 2 from ex_modules.module1 import *
      3 
      4 module1_function()
      5 module2_function3()

c:\some path xD\Main folder\ex_modules\module1.py in <module>
      1 
----> 2 from module2 import *  #as I said, they are both in the same folder
      3 
      4 def module1_function():
      5         module2_function1()

ModuleNotFoundError: No module named 'module2'

这是因为它导入 module2(在 ex_modules 文件夹中),就好像它在 main.py 的主文件夹中一样

我试图将主文件中的两个模块导入为“ex_modules.module1 和 ex_modules.module2”,是的,它不起作用

问题是:我的语法错了吗?或者这只是一个 VS 代码错误?

罗夫·阿内塞特

问题来自在上面的目录中运行ex_modules尝试将导入更改module1.py为相对导入:

from .module2 import *

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章