.
├── __init__.py
├── b
│ ├── __init__.py
│ ├── config.py
│ └── process.py
└── main.py
其中 main.py 为
from b.process import process
if __name__ == '__main__':
process()
config.py:
PDF_FILE = 'apc.pdf'
process.py
from config import PDF_FILE
def process():
print('Processing PDF file:', PDF_FILE)
if __name__ == '__main__':
process()
之后我从根目录(b 的父目录, main.py所在的文件夹)运行了
python main.py
出现了 Error
Traceback (most recent call last):
File "/Users/xxx/a/main.py", line 1, in
from b.process import process
File "/Users/xxx/a/b/process.py", line 1, in
from config import PDF_FILE
ModuleNotFoundError: No module named 'config'
之后我从我项目(项目 a)的父目录中运行
python -m a.main
依然会有一样的错误.
如何解决这种情况呢, 我知道将 b\process.py中的 from config import PDF_FILE 改为 from .config import PDF_FILE 避免上面的错误. 但是实际中的 b 是一个非常复杂的项目, 有着很多导入和很多层级, 有没有办法不用一个个全部改成相对导入, 或者有什么自动化的工具可以完成这个动作呢? 抑或是还有更好的处理方法?
Python, pdf_file, import, Process