我正在从一个目录导入一个文件
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解释器运行的路径,以及trackback中显示的包含
..
的environment.py
路径:很明显,您是从
FitvTests
下的子目录运行environment.py
,而不是从environment.py
所在的同一目录运行,在这种情况下,import
语句中的..
只会引用FitvTests
目录,而不是它的父目录Fitv
您应该从
FitvTests
目录运行environment.py
,或者如果您有充分的理由从当前运行它的子目录运行它,请使用...
来引用目录2级以上:相关问题 更多 >
编程相关推荐