import模块提示找不到!股票量化分析工具常见问题剖析

本文详细介绍了如何处理在移植股票量化分析工具时遇到的'ModuleNotFoundError:No module named 'MainlyGui''问题,包括查找绝对路径、理解相对路径和sys.path设置,确保正确导入模块。
摘要由CSDN通过智能技术生成


不少读者在移植V1.0或者V2.0股票量化分析工具的时候,会碰到类似这样的报错:

ModuleNotFoundError: No module named 'MainlyGui'

这个报错是在import MainlyGui时引起的。

MainlyGui是我们的分析工具源代码中的一个文件,我们查看了下工程文件,发现这个文件明明就存在着,可是解释器就是找不到,到底是什么原因呢?

接下来我们就来讲下如何解决这类的问题。

关于绝对路径

比如以下的目录结构,我们在MainApp.py文件中去import我们自己编写的模块。

首先我们应该查看下在当前目录下的绝对路径是什么。

绝对路径是指从硬盘根目录(盘符)开始,一级级目录指向文件的路径。也就是文件真正存在的路径。

我们可以在MainApp.py中增加以下代码进行查看:

import os
path1=os.path.abspath('.')   # 表示当前所处的文件夹的绝对路径
print(path1)
C:\Users\......\......\QTYX\MainlyGui

如果要查看当前所处的文件夹上一级文件夹的绝对路径,可增加以下代码进行查看:

import os
path2=os.path.abspath('..')  # 表示当前所处的文件夹上一级文件夹的绝对路径
print(path2)
C:\Users\......\......\QTYX

关于相对路径

如果要在当前的程序中import其他模块,得让当前程序能够根据路径找到模块。

由于已经有了绝对路径,因此可以在这个基础上通过相对路径去找到这些模块。

相对路径指以当前文件为基准进行一级级目录指向被引用的文件。

../表示当前文件所在的目录的上一级目录

./ 表示当前文件所在的目录(可以省略)

案例说明

当主程序与模块程序在同一目录下,比如MainApp.py中导入MainFrame。

可以直接使用以下语句:

import MainFrame

或者

from MainFrame import *

主程序所在的目录是模块所在目录的父目录,比如MainApp.py中导入模块DefPanel(需要在ElementGui文件夹中建立文件__init__.py,当然可为空)。

可以直接使用以下语句:

import ElementGui.DefPanel

或者 

from ElementGui.DefPanel import *

主程序导入上层目录中的模块或者其他目录(平级)下的模块 。比如MainApp.py中导入模块Baostock。

首先需要在ApiData下建立__init__.py文件,然后在sys.path环境变量添加Baostock模块路径。

我们前面说了导入模块关键是能够找到具体模块的路径。

如果去找到路径呢?可以增加sys.path环境变量的值去寻找:

import sys, os
sys.path.append(os.path.dirname(__file__) + os.sep + '../')
#sys.path.append("..")
#sys.path.append(r"C:/Users/....../QTYX/")

然后就可以直接以下语句:

import ApiData.Baostock

或者

from ApiData.Baostock import *

好了!以上就是针对小伙伴们遇到的常见问题的讲解,希望能够给大家带来帮助!

说明

近期加入知识星球可享福利【含续费用户】,微信call我获取!星球目录可点击【阅读原文】查看。

元宵大师的量化交易书籍开售!!京东、当当、天猫有售!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值