我有这样的文件夹结构:
application
├── app
│ └── folder
│ └── file.py
└── app2
└── some_folder
└── some_file.py
如何从file.py或some_file.py中导入函数?我尝试了:
from application.app.folder.file import func_name
但它不起作用。
我有这样的文件夹结构:
application
├── app
│ └── folder
│ └── file.py
└── app2
└── some_folder
└── some_file.py
如何从file.py或some_file.py中导入函数?我尝试了:
from application.app.folder.file import func_name
但它不起作用。
当前回答
所以我刚刚右键单击了我的IDE,并添加了一个新文件夹,我想知道为什么不能从中导入。后来我意识到我必须右键单击并创建一个Python包,而不是一个经典的文件系统文件夹。或者一种事后分析方法,添加__init__.py(这使得python将文件系统文件夹视为一个包),如其他答案中所述。在这里添加这个答案,以防有人走这条路。
其他回答
而不是仅仅做一个导入。。。,执行以下操作:
从<MySubFolder>导入<MyFile>
MyFile位于MySubFolder中。
据我所知,直接在要导入的函数的文件夹中添加__init__.py文件即可完成此任务。
所以我刚刚右键单击了我的IDE,并添加了一个新文件夹,我想知道为什么不能从中导入。后来我意识到我必须右键单击并创建一个Python包,而不是一个经典的文件系统文件夹。或者一种事后分析方法,添加__init__.py(这使得python将文件系统文件夹视为一个包),如其他答案中所述。在这里添加这个答案,以防有人走这条路。
在linux上的python3中为我工作
import sys
sys.path.append(pathToFolderContainingScripts)
from scriptName import functionName #scriptName without .py extension
我认为一种特别的方法是使用环境变量PYTHONPATH,如文档中所述:Python2,Python3
# Linux & OSX
export PYTHONPATH=$HOME/dirWithScripts/:$PYTHONPATH
# Windows
set PYTHONPATH=C:\path\to\dirWithScripts\;%PYTHONPATH%