在不了解路径的情况下,如何从其他相对文件夹导入?

时间:2019-01-30 19:23:28

标签: python import pygame python-import python-3.7

我正在Pygame中开发一款小型视频游戏。我希望它在文件夹层次结构中非常清楚,因此,我已经以这种方式进行了准备:

Python 
   Project 
      bin
        init.py
        Project.vbs
      lib
        constants.py
        definitions.py
      sprites ( useless for topic )
      Project.exe

Project.exe是一个墨水文件,是一个虚假的可执行文件。实际上,这是打开init.py的Project.vbs的快捷方式(仅用于具有最清晰的文件夹管理)。

我的问题是什么?  我想从“ bin”文件夹中的init.py导入difinitions.py和constants.py,这对于游戏来说绝对至关重要。 顺便说一句,这些文件保存在我的USB闪存盘上,但是此路径始终会更改:

在我自己的计算机上,它是C:/user/Edhyjox/Save19/Python/...

在我的高中计算机上,它是P:/documents/Python(实习)

在我的手机上是/storage/0/Python/...

每当我进行复制时,路径都会更改...

所以我已经阅读了很多主题来尝试解决此问题,但是只要它不起作用,就:/

我已经尝试使用:

Import constants from lib import constants from lib.definitions import * 我已经尝试过使用操作系统和路径

import sys sys.path.insert(0, 'Project/lib') import constants

import sys sys.path.append('Project/lib') import constants

但是仍然无法正常工作...有人可以给我解决方案并向我解释吗?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您从哪里开始Python进程。您要添加的任何路径都应相对于该位置。因此,您说它是从root@MyPC:/# cd home root@MyPC:/# cd Desktop root@MyPC:/# cd mylocalfolder 开始的,因此您可以添加

bin

您还可以将import os import sys sys.path.append(os.path.abspath('../lib')) import constants 添加到__init__.py,然后将lib添加到path并执行".."

或者您可以将整个程序安装并安装为Python软件包,然后使用绝对导入,例如import lib.constants as constants