如何在另一个Flask中导入python文件?

2024-04-25 17:54:39 发布

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

我有一个init.py文件。我有一个子目录/controller在同一个路径中。

我试图在init.py内部导入文件/controller/file.py,如下所示:

import controller/file
import controller/file.py

它不起作用。如何在Flask框架中或Python中实现这一点?


Tags: 文件pyimport路径框架flaskinitfile
2条回答

正如上面注释中提到的@Davidism那样,您可以“像导入其他地方一样”导入文件。导入路径由点而不是斜线分隔。”

假设你有这样的文件结构

/Project
 --program.py
   /SubDirectory
    --TestModule.py

在这个例子中,假设TestModule.py的内容是:

def printfunction(x):
    print(x)

现在让我们首先开始,在您的program.py中,您需要import sys,然后使用这行代码将子目录添加到python的环境路径中

import sys
sys.path.insert(0, os.getcwd()+"/SubDirectory")

现在可以正常导入模块。继续使用上面描述的文件结构,现在您可以像这样导入模块

import TestModule 

现在可以像平常一样从TestModule.py文件中调用函数printfunction()

TestModule.printfunction("This is a test! That was successful!");

这将输出:

This is a test! That was successful!

所有的program.py文件都应该如下所示:

import sys
sys.path.insert(0, os.getcwd()+"/SubDirectory")    
import TestModule
TestModule.printfunction("This is a test! That was successful!");

首先,必须放在那里的文件称为__init__.py。第二,你通常应该让这些空的,除非你想要一些非常具体的行为。

最后,看看这个文件夹结构

- __init__.py
- main.py
+ foo
  - __init__.py
  - foo_app.py
+ bar
  - __init__.py
  - bar_app.py

foo_app.py

import bar.bar_app

编辑:要使其工作,必须从父目录启动应用程序。

相关问题 更多 >