从lib目录导入文件?

2024-10-03 09:08:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在重新组织我的项目,因为有一个地方的问题,但是,正如编程总是去,问题现在是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?中的建议,但没有任何效果。作为参考,我使用的是python3.7.3。你知道吗


Tags: 文件项目py目录gamelib编程地方
2条回答

我不是专家,但上周末我编写了一些类似结构的python代码,并从文件夹.file导入引用以反映文件夹结构:

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")

它将父dictory+/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语句内联。但我知道这是可行的(在我的机器上)。你知道吗

相关问题 更多 >