是否可以从主文件所在的目录外部导入 python 文件?

Is it possible to import a python file from outside the directory the main file is in?

我的文件结构如下所示:

Liquid
|
[Truncate]
|_General_parsing
[Truncate]
.....|_'__init__.py'
.....|_'Processer.py'
.....|'TOKENIZER.py'
|_'__init__.py'
|_'errors.py'
[Truncate]

我想从 Processer.py 导入 errors.py。那可能吗?我试着用这个:

from ..errors import *; error_manager = errorMaster()

这是什么原因:

Traceback (most recent call last):
  File "/Users/MYNAME/projects/Liquid/General_parsing/Processer.py", line 17, in <module>
    from ..errors import *; error_manager = errorMaster()
ImportError: attempted relative import with no known parent package
[Finished in 0.125s]

我已经看到 , but it's no help, even if it tries to solve the same ImportError. This 也不是(至少在我编辑它之前不是),因为我尝试过:

import sys
sys.path.insert(1, '../Liquid')
from errors import *; error_manager = errorMaster()

这给


Traceback (most recent call last):
  File "/Users/MYNAME/projects/Liquid/General_parsing/Processer.py", line 19, in <module>
    from errors import *; error_manager = errorMaster()
ModuleNotFoundError: No module named 'errors'
[Finished in 0.162s]

编辑:没关系!我解决了!我只需要将 .. 添加到 sys.path!或者 . 如果 .. 不能解决您的问题。 但是如果这些不能解决你的问题:使用一些pathlib(来自python3.4+)魔法并做:

from pathlib import Path
import sys
sys.path.insert(0, str(Path(__file__).parent))

或者,如果您想使用 os: (gotten from this Whosebug 答案)

import os
os.path.join(os.path.dirname(__file__), '..')

我解决了!我必须将 .. 添加到 sys.path 而不是