如何从父目录中的文件夹导入?

时间:2020-06-14 18:24:21

标签: python python-import

我想从父目录中文件夹中的文件中导入某些内容。

这是目录结构的样子。

GAME
|--Player
|    `player.py  [FILE THAT NEEDS TO BE IMPORTED]
|--Story
|    `introduction.py [FILE NEEDS AN IMPORT STATEMENT]
|--mainGame.py

我知道从Player文件夹中导入player.py。我需要做import Player.player,但是我不知道如何导航到父目录中的其他文件夹。

请帮助。

2 个答案:

答案 0 :(得分:1)

只需在要导入其文件的目录中 init .py文件(空白文件也可以,无需在其中输入任何代码)。

因此您的目录结构将类似于

GAME/
├── mainGame.py
├── Player
│   ├── __init__.py
│   └── player.py
└── Story
    └── introduction.py

,您可以通过from Player import playerimport Player.player进行导入。

最好在软件包中的所有目录都包含init文件,以便您可以在项目/软件包中的任何位置使用它。

有关python软件包的更多信息,PYTHONPATH访问herethis(有关python软件包的基础知识),这是了解python项目结构的好博客。

答案 1 :(得分:0)

如果GAME是一个程序包(意味着它有一个__init__.py文件),则可以执行import GAME.Story.introductionimport GAME.Player.player

如果尚无__init__.py文件,则可以将其添加为一个文件包。它不必包含任何内容,它可以只是一个空白文件。

运行程序包可能有点奇怪。从内部运行它们不起作用。要运行该文件,请导航到GAME上方的目录,然后使用python -m GAME.Story.introduction运行您想要的文件。否则,我希望您会得到一个ModuleNotFoundError