如何从其他不知道路径的相对文件夹导入?

2022-11-05 13:36:38 发布


我正在用Pygame做一个小游戏。我希望它在文件夹层次结构中非常清晰,因此,我已经用这种方式准备好了:

long龙8国际 
   Project 
      bin
        init.py
        Project.vbs
      lib
        constants.py
        definitions.py
      sprites ( useless for topic )
      Project.exe

那个项目.exe是一个墨迹文件,一个假的可执行文件。事实上,这是通往世界的捷径项目.vbs打开初始.py(这只是为了有最清晰的文件夹管理)。你知道吗

我有什么问题? 我想导入定义.py以及常数.py从初始.py在“bin”文件夹中,这对游戏来说是绝对重要的。 顺便说一句,这些文件保存在我的U盘上,但是这个文件的路径总是会改变:

在我自己的电脑上,它是C:/user/Edhyjox/Save19/long龙8国际/...

在我的高中电脑上,是P:/documents/long龙8国际(实习)

我的手机是/storage/0/long龙8国际/...

每当我复印一份,路径就会改变。。。你知道吗

所以我读了很多关于尝试解决这个问题的主题,但是任何时候它都不起作用:/

我试过使用:

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

但不管怎样它都不起作用。。。有人能给我一个解决办法并给我解释一下吗?你知道吗


Tags: 文件项目pyimport路径project文件夹binlibsysexedefinitions电脑constantsvbs
1条回答
网友
1楼 ·

这实际上取决于从何处开始long龙8国际进程。无论您要添加什么路径,都应该是相对于该位置的。所以你说它是从bin开始的,所以你可以添加

import os
import sys

sys.path.append(os.path.abspath('../lib'))
import constants

您还可以将__init__.py添加到lib,然后将".."添加到path并执行import lib.constants as constants。你知道吗

或者您可以将整个东西作为long龙8国际包进行设置和安装,然后使用绝对导入,例如import mygame.lib.constants as constants。你知道吗