gpt4 book ai didi

python - 从上一级目录导入文件

转载 作者:行者123 更新时间:2023-12-01 07:47:44 25 4
gpt4 key购买 nike

我正在努力从一个目录向上导入一个文件。

Fitv/
__init__.py
BrowserPool.py
FitvTests/
__init__.py
environment.py

因此,通过上述文件结构,我想将 BrowserPool 导入到环境中。

我开始于:

from Fitv.BrowserPool import BrowserPool

得到这个:

  File "..\environment.py", line 4, in <module>
from Fitv.BrowserPool import BrowserPool
ModuleNotFoundError: No module named 'Fitv'

查看我尝试过的各种来源:

from .. import BrowserPool

我得到了这个:

  File "..\environment.py", line 3, in <module>
from .. import BrowserPool
KeyError: "'__name__' not in globals"

尝试过(使用绝对路径):

import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath('D:/Dev/Python/Fitv-master-new/Fitv/'))))
from Fitv.BrowserPool import BrowserPool

得到:

  File "..\environment.py", line 3, in <module>
from Fitv.BrowserPool import BrowserPool
ModuleNotFoundError: No module named 'Fitv'

尝试过(使用相对路径):

import sys
sys.path.append('/Fitv-master-new/Fitv/')
from Fitv import BrowserPool

得到:

  File "..\environment.py", line 8, in <module>
from Fitv import BrowserPool
ModuleNotFoundError: No module named 'Fitv'

我做错了什么以及如何解决它?

最佳答案

Python 中的导入始终相对于 Python 解释器运行的路径,以及包含 .. 的引用中显示的 environment.py 的路径:

File "..\environment.py", line 8, in <module>

很明显,您是从 FitvTests 下的子目录运行 environment.py,而不是 environment.py 所在的同一目录code> 位于,在这种情况下,import 语句中的 .. 将仅引用 FitvTests 目录而不是其父目录,Fitv.

您应该从 FitvTests 目录运行 environment.py,或者如果您有充分的理由从当前运行它的子目录运行它,使用 ... 来引用上 2 层目录:

from ...BrowserPool import BrowserPool

关于python - 从上一级目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56366346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com