从 lib 目录导入文件?

Import file from lib directory?

我一直在重新组织我的项目,因为某个地方出现了问题,但是,随着编程的进行,问题现在严重了 10 倍,一切都坏了。

我目前比较满意的文件树是:

Amazons AI
  - .git
  - Game_Code
    - __pycache__
    - game.py
  - lib
    - __pycache__
    - __init__.py (empty)
    - motion.py
    - pieceManagement.py
  - tests
    - __pychache__
    - test_game.py
  - README.md

我的问题是在 game.py(在 Game_Code 文件夹中,我需要导入 motion.pypieceManagement.py(都在 lib 目录中).

我已经尝试了多种方法来提升目录中的一个级别,导入 lib,然后从中导入所有内容,主要是使用 Import a file from a subdirectory? 中的建议,但没有任何效果。作为参考,我使用的是 Python 3.7.3.

我不是专家但是上周末我写了一些具有类似结构的 python 代码并使用了 from folder.file import reference 来反映文件夹结构:

from lib.motion import classObject as ObjectName 
from lib.pieceManagement import classMethod() as MethodName()

要访问当前文件的父目录中的libs,可以这样做:

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + "/libs")

它将父字典 + /libs 添加到 sys 路径,python 将知道如何按照 Python - what is the libs subfolder for? 中的描述查找它。但是,我不喜欢这个解决方案,因为它会导致像这样的丑陋代码:

import os
import sys

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + "/libs")

from pieceManagement import piece
import motion

所以我仍然想找到一种 pythonic 方法来完成它,也许与 import 语句内联。但我知道这有效(在我的机器上)。