我正在构建一个软件。我在不同的文件夹中组织了不同的python文件(模块(中的不同代码。
它就像一个符咒。然后今天它不再工作了,因为我有一些问题:
ModuleNotFoundError: No module named 'modules.mymodulesteam'
这就是我的代码的组织方式:
MySoftware/
- start.py
- modules/
-- mymodules.py
-- prepare.py
-- mymodulesteam.py
在start.py文件中,我有这样的导入:
from modules import prepare_envir_appium
准备中。py我有这条进口
import modules.mymodulesteam as mymodules
当我执行";start.py";,我在控制台上有这样的错误消息:
Traceback (most recent call last):
File "E:MySoftwaremodulesprepare.py",
import modules.mymodulesteam as mymodules
ModuleNotFoundError: No module named 'modules.mymodulesteam'
所以我搜索帮助,我发现我必须在我的文件夹中添加一些_;模块";。我做了,但没用。我也有同样的问题。
我阅读了每一篇关于这类问题的帖子,并尝试了很多东西。
from modules import mymodulesteam
from . import mymodulesteam
etc...
我得到了这样的错误:
Traceback (most recent call last):
File "E:MySoftwaremodulesprepare.py",
from modules import mymodulesteam as mymodules
ImportError: cannot import name 'mymodulesteam' from 'modules' (E:MySoftwaremodules__init__.py)
所以我删除了这个"_init_.py";文件并再次测试。这次我得到这个错误:
Traceback (most recent call last):
File "E:MySoftwaremodulesprepare.py",
from modules import mymodulesteam as mymodules
ImportError: cannot import name 'mymodulesteam' from 'modules' (unknown location)
它过去工作得很好。我不知道发生了什么。有人能帮我吗?
它不起作用,因为模块不在同一路径中,脚本不知道从哪里查找。
您当前的start.py
文件如下所示,
from modules import prepare_envir_appium
相反,请在start.py
文件的顶部执行此操作,因为prepare_envir_appium.py
文件位于模块中。
import sys
sys.path.insert(0,"../modules")
import prepare_envir_appium
现在,您可以使用prepare_envir_appium.functionname
访问您的函数。
你也可以这样做,
import sys
sys.path.insert(0,"../modules")
import prepare_envir_appium as per
现在,您可以在start.py.中使用per.functionname
访问函数
你也可以导入像这样的特定功能,
import sys
sys.path.insert(0,"../modules")
from prepare_envir_appium import functionname1, functionname2
您可以使用它们的函数名来运行它们。
但是,如果您正在查看prepare.py
脚本,因为该模块与该脚本位于同一文件夹中,所以您所要做的就是导入如下所示的不带.py扩展名的文件名。
您可以遵循与上述相同的导入命名约定。
import mymodulesteam
或
import mymodulesteam as mmt
或
from mymodulesteam import function1, function2