2024-04-25 17:54:39 发布
网友
我有一个init.py文件。我有一个子目录/controller在同一个路径中。
init.py
/controller
我试图在init.py内部导入文件/controller/file.py,如下所示:
/controller/file.py
import controller/file import controller/file.py
它不起作用。如何在Flask框架中或Python中实现这一点?
正如上面注释中提到的@Davidism那样,您可以“像导入其他地方一样”导入文件。导入路径由点而不是斜线分隔。”
假设你有这样的文件结构
/Project --program.py /SubDirectory --TestModule.py
在这个例子中,假设TestModule.py的内容是:
TestModule.py
def printfunction(x): print(x)
现在让我们首先开始,在您的program.py中,您需要import sys,然后使用这行代码将子目录添加到python的环境路径中
program.py
import sys
import sys sys.path.insert(0, os.getcwd()+"/SubDirectory")
现在可以正常导入模块。继续使用上面描述的文件结构,现在您可以像这样导入模块
import TestModule
现在可以像平常一样从TestModule.py文件中调用函数printfunction()
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
最后,看看这个文件夹结构
- __init__.py - main.py + foo - __init__.py - foo_app.py + bar - __init__.py - bar_app.py
在foo_app.py中
foo_app.py
import bar.bar_app
编辑:要使其工作,必须从父目录启动应用程序。
正如上面注释中提到的@Davidism那样,您可以“像导入其他地方一样”导入文件。导入路径由点而不是斜线分隔。”
假设你有这样的文件结构
在这个例子中,假设
TestModule.py
的内容是:现在让我们首先开始,在您的
program.py
中,您需要import sys
,然后使用这行代码将子目录添加到python的环境路径中现在可以正常导入模块。继续使用上面描述的文件结构,现在您可以像这样导入模块
现在可以像平常一样从
TestModule.py
文件中调用函数printfunction()
这将输出:
所有的
program.py
文件都应该如下所示:首先,必须放在那里的文件称为
__init__.py
。第二,你通常应该让这些空的,除非你想要一些非常具体的行为。最后,看看这个文件夹结构
在
foo_app.py
中编辑:要使其工作,必须从父目录启动应用程序。
相关问题 更多 >
编程相关推荐