我想从父目录中文件夹中的文件中导入某些内容。
这是目录结构的样子。
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
,但是我不知道如何导航到父目录中的其他文件夹。
请帮助。
答案 0 :(得分:1)
只需在要导入其文件的目录中 init .py文件(空白文件也可以,无需在其中输入任何代码)。
因此您的目录结构将类似于
GAME/
├── mainGame.py
├── Player
│ ├── __init__.py
│ └── player.py
└── Story
└── introduction.py
,您可以通过from Player import player
或import Player.player
进行导入。
最好在软件包中的所有目录都包含init文件,以便您可以在项目/软件包中的任何位置使用它。
有关python软件包的更多信息,PYTHONPATH访问here,this(有关python软件包的基础知识),这是了解python项目结构的好博客。
答案 1 :(得分:0)
如果GAME是一个程序包(意味着它有一个__init__.py
文件),则可以执行import GAME.Story.introduction
或import GAME.Player.player
。
如果尚无__init__.py
文件,则可以将其添加为一个文件包。它不必包含任何内容,它可以只是一个空白文件。
运行程序包可能有点奇怪。从内部运行它们不起作用。要运行该文件,请导航到GAME上方的目录,然后使用python -m GAME.Story.introduction
运行您想要的文件。否则,我希望您会得到一个ModuleNotFoundError
。