我正在努力从一个目录导入文件。
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>
显然,您是从
environment.py
下的子目录而不是FitvTests
所在的目录运行environment.py
,在这种情况下,..
语句中的import
会简单地引用FitvTests
目录而不是其父目录Fitv
。您应该从
environment.py
目录运行FitvTests
,或者如果有充分的理由从当前运行它的子目录中运行它,请使用...
而不是向上2级的目录:from ...BrowserPool import BrowserPool
关于python - 从一个目录导入文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56366346/