如何在不同文件夹中组织的几个模块的项目中使用python进行导入



我正在构建一个软件。我在不同的文件夹中组织了不同的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

相关内容

  • 没有找到相关文章

最新更新