我有这样的文件夹结构:
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
但它不起作用。
当前回答
据我所知,直接在要导入的函数的文件夹中添加__init__.py文件即可完成此任务。
其他回答
以防有人仍然需要解决方案,但在上面的答案中没有找到解决方案。这对我有用:
我有这样的文件夹结构:
a
└── b
├── c1
| └── d
| └── a_script.py
└── c2
└── a_lib.py
我需要将a_lib.py包含在a_script.py中。这就是我如何解决c2无法识别的错误:
import sys
from pathlib import Path
path_scripts = Path(__file__).resolve().parents[2]
sys.path.append(str(path_scripts))
from c2 import a_lib
您可以通过按f5刷新Python shell,或转到运行->运行模块。这样,您就不必更改目录来读取文件中的内容。Python将自动更改目录。但是,如果您想使用PythonShell中不同目录中的不同文件,那么可以在sys中更改目录,正如Cameron之前所说的那样。
这对我在窗户上有用
# some_file.py on mainApp/app2
import sys
sys.path.insert(0, sys.path[0]+'\\app2')
import some_file
如果有多个文件夹和子文件夹,则始终可以从主目录导入任何类或模块。
例如:项目的树形结构
Project
├── main.py
├── .gitignore
|
├── src
├────model
| └── user_model.py
|────controller
└── user_controller.py
现在,如果您想从main.py文件中的user_model.py导入“UserModel”类,可以使用:
from src.model.user_model.py import UserModel
此外,您可以使用同一行在user_controller.py文件中导入同一类:
from src.model.user_model.py import UserModel
总之,您可以提供主项目目录的引用,以导入project目录中任何python文件中的类和文件。
而不是仅仅做一个导入。。。,执行以下操作:
从<MySubFolder>导入<MyFile>
MyFile位于MySubFolder中。