[英]How to import a file from another folder in Python
我有以下文件夹结构:
...
│
├── src
│ ├── folder_A
│ │ └── file_A.py
│ │ └── __init__.py
│ │
│ ├── folder_B
│ │ └── file_B.py
│ │ └── __init__.py
│ │
│ └── __init__.py
│
│
└── something else
在文件file_A.py
我把from folder_B import file_B as fb
。 但是file_A.py
只能在调试模式下工作(这意味着代码会产生预期的结果)。 如果我以标准方式运行file_A.py
,则会收到错误ModuleNotFoundError: No module named 'folder_B'
。
我还在运行代码之前更改了配置,将C:\Users\***\***\***\src
作为file_A.py
的工作目录,但它仍然不起作用。
有什么办法可以解决?
如果您的当前目录是src
,那么folder_B
因此在路径中。 如果您想制作带有可以相互访问的子包的 package,请将所有内容放入根 package:
│
├── src
│ └── root_package
│ ├── folder_A
│ │ ├── file_A.py
│ │ └── __init__.py
│ │
│ ├── folder_B
│ │ ├── file_B.py
│ │ └── __init__.py
│ │
│ └── __init__.py
│
└── something else
现在在file_A
,你可以做
from ..folder_B import file_B as fb
由于src
不是 package,因此您无法通过它进行相对导入。 通过添加root_package
,您可以在与执行导入的模块相同的 package 层次结构(尽管是不同的分支)中找到folder_B
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.