自己在学习python过程遇到的一些问题和解决方法
最近在远程服务器上跑python代码的时候频繁遇到导包时找不到包的问题,原因是当我点击viscose右上角的小三角运行代码时,其实是在当前文件的包中运行的(项目包的一个子包),自然无法定位到项目其他文件中的包类/函数),解决方法是在运行的代码导包前(from import)在文件中添加这样一段代码:
import os
Import sys
ROOT=os.path.join.dirname(os.path.dirname(os.path.abspath(__file__)))
If ROOT not in sys.path:
Sys.path.insert(0,ROOT)
具体代码解释:
os.path.abspath(file):定位到当前文件的绝对路径
os.path.dirname():退回到上一级目录
ROOT:退回n次找到项目的跟路径
sys.path.insert(0,ROOT):将跟路径作为python解释器查找路径的第一位
在后续的导包过程中,可以直接使用文件夹名+.+文件名定位到模块 如果还是不行可以在文件夹中手动添加一个空的__init__.py文件,将当前文件夹初始化为包(一般不用此步骤)