赞
踩
在 pycharm 上运行的好好的,但是到服务器就出现了问题
首先,在服务器上确认一下你当前的需要导入的数据和导入的第三方包是否在服务器当前的路径下
如果不在,那么就会报错。
ModuleNotFoundError: No module named 'scr'
from B import C # 绝对导入 from . import D # 相对导入 from ..E import F # 相对导入
Python 解释器对于绝对导入的处理是从当前目录、sys.path、环境变量 PYTHONPATH 中搜索需要导入的包。如果使用绝对导入出现问题需要考虑是否可以从这些目录中找到相应的包
solution:
import sys sys.path.append('你的项目目录') from B import C
import sys import os sys.path.append(os.path.dirname(os.path.realpath(__file__))) # os.path.realpath(__file__)表示当前文件的路径,加上os.path.dirname就是当前文件的上一级目录路径 # 套多少个dirname()取决于当前文件在你的项目目录中的深度有多少。 # 注意不要把realpath写成relpath! from B import A
按照 PEP8 的标准,建议使用绝对导入,例如from A.B import C
(从顶级包开始,A 就是这里的顶级包,也就是最外层的含有 __init__.py
的目录)。但是相对导入也是被允许的,出于以下考虑:
ImportError: No module named *** 问题?——理解绝对导入和相对导入 | Levy's Blog
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。