Python 文件无法作为模块正常工作(也许只是在 VScode 中?)
Python files not working proprely as modules (Just in VS code maybe?)
在说明问题之前,我先举个简单的例子:
(请考虑阅读整个问题和重要说明)
-主文件夹:包含:
+main.py
+外部模块文件夹(名为 ex_modules)
-外部模块文件夹:包含:
+module1.py
+module2.py
main.py需要module1.pyANDmodule2.py,但是module1.py只需要module2.py
所以我想将module2.py导入module1.py然后将module1.py导入主文件,我是这样处理的:
module2.py:
def module2_function1():
return something
def module2_function2():
return something2
def module2_function3():
return something3
module1.py:
from module2 import * #as I said, they are both in the same folder
def module1_function():
module2_function1()
module2_function2()
main.py:
from ex_modules.module1 import *
module1_function() #a module1 function that uses module2 functions
module2_function3() #a module2 function
VS 代码在处理主文件时不显示任何警告
但是当我 运行 it:
时会出现这个错误
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[=45= 的主文件夹中一样]
我尝试将主文件中的两个模块导入为 'ex_modules.module1 and ex_modules.module2' 是的,它不起作用
问题是:
我的语法错了吗?或者这只是一个 VS 代码错误?
问题来自 ex_modules
上方目录中的 运行。尝试将 module1.py
中的导入更改为相对导入:
from .module2 import *
在说明问题之前,我先举个简单的例子: (请考虑阅读整个问题和重要说明)
-主文件夹:包含: +main.py +外部模块文件夹(名为 ex_modules)
-外部模块文件夹:包含: +module1.py +module2.py
main.py需要module1.pyANDmodule2.py,但是module1.py只需要module2.py
所以我想将module2.py导入module1.py然后将module1.py导入主文件,我是这样处理的:
module2.py:
def module2_function1():
return something
def module2_function2():
return something2
def module2_function3():
return something3
module1.py:
from module2 import * #as I said, they are both in the same folder
def module1_function():
module2_function1()
module2_function2()
main.py:
from ex_modules.module1 import *
module1_function() #a module1 function that uses module2 functions
module2_function3() #a module2 function
VS 代码在处理主文件时不显示任何警告 但是当我 运行 it:
时会出现这个错误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[=45= 的主文件夹中一样]
我尝试将主文件中的两个模块导入为 'ex_modules.module1 and ex_modules.module2' 是的,它不起作用
问题是: 我的语法错了吗?或者这只是一个 VS 代码错误?
问题来自 ex_modules
上方目录中的 运行。尝试将 module1.py
中的导入更改为相对导入:
from .module2 import *