如何从其他文件夹和子文件夹导入pythonfile

2024-04-26 10:57:44 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我在做python3.6.8,现在我被导入文件困住了。 这是不可能的

├── db
│   ├── commit.py
│   ├── config.py
│   ├── database.ini
│   └── __init__.py
└── main.py

这是我的代码结构。对于每个文件

#commit.py 

from config import config 

class Commit():
     #many function
     #some process. Which use package from config
#config.py 

class config():
    #some process.
#database.ini 
#It's text file 
#__init__.py 
import commit 
import config
#main.py 

from db import commit 
from db import config 

class Main():
    #many function
    #include calling commit function 

if __name__=="__main__":
   #work with main function 

但我的程序还是出错了。当我跑的时候主.py下面是错误信息。你知道吗

db/__init__.py", line 1, in <module>
import commit
ModuleNotFoundError: No module named 'commit'

为什么它不能工作?因为Python是3+?如何解决这个问题。你知道吗


Tags: 文件frompyimportconfigdbinitmain
1条回答
网友
1楼 · 发布于 2024-04-26 10:57:44

以下结构应起作用:

# main.py
from db.commit import *
from db.config import *

class Main():
   #many function
   #include calling commit function 

if __name__== "__main__":
   #work with main function

我想您需要导入commit和config文件中的所有内容。但是,如果您只需要Commit类或config类,可以修改如下代码:

from db.commit import Commit
from db.config import config

然后是其他文件

# init.py
# no imports

从中删除导入初始.py你知道吗

# config.py
class config():
    #some process.

你知道吗配置.py就像你的版本一样

# commit.py
from .config import *

class Commit():
    #many function
    #some process. Which use package from config

这样才能正确工作。你知道吗

评论后编辑

如果来自主.py,则导入中包含的函数提交.py模块和输入提交.py导入包含在中的函数的模块主.py模块将有循环导入。你知道吗

为了解决这个问题,你应该用另一种方式组织项目结构。
例如,您可以将主类移动到另一个文件中,然后将其导入到这两个文件中,主.py以及提交.py. 你知道吗

相关问题 更多 >