鱼C论坛

 找回密码
 立即注册
查看: 2281|回复: 6

[已解决]报错:ModuleNotFoundError: No module named 'tqsdk'

[复制链接]
发表于 2023-10-10 23:16:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
先谢过义士相助!

我尝试用一个程序去运行另一个程序,代码如下:
import subprocess

# 指定要运行的Python脚本的路径
script_path = "C:\\Users\\24954\\PycharmProjects\\DemoAccTest\\STRpack_1\\bu.py"

# 使用subprocess运行Python脚本
subprocess.call(["python", script_path])


报错如下:
Traceback (most recent call last):
  File "C:\Users\24954\PycharmProjects\DemoAccTest\STRpack_1\bu.py", line 11, in <module>
    from tqsdk import TqApi, TqAuth, TargetPosTask, TqKq, tafunc
ModuleNotFoundError: No module named 'tqsdk'

我单独运行文件bu.py是没有问题的,运行正常。
但是我通过其它文件运行这个bu.py文件,就会产生这样的错误。

请问大佬这是什么情况啊。。。。
小白很菜,求解惑~

谢谢啦!
最佳答案
2023-10-10 23:16:44
这个错误是因为在运行另一个程序时,Python解释器无法找到 tqsdk 模块。这是因为在运行bu.py文件时,Python解释器会查找当前环境中是否安装了 tqsdk 模块,但是在运行另一个程序时,Python解释器无法找到这个模块。



解决方法是在运行另一个程序之前,先安装 tqsdk 模块。可以使用pip命令来安装,命令如下:


pip install tqsdk


如果你已经安装了 tqsdk 模块,但是仍然出现这个错误,可能是因为Python解释器无法找到这个模块的路径。可以尝试在代码中添加如下代码:


import sys

sys.path.append("tqsdk模块的路径")


其中,"tqsdk模块的路径"是 tqsdk 模块所在的路径。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-10 23:16:44 | 显示全部楼层    本楼为最佳答案   
这个错误是因为在运行另一个程序时,Python解释器无法找到 tqsdk 模块。这是因为在运行bu.py文件时,Python解释器会查找当前环境中是否安装了 tqsdk 模块,但是在运行另一个程序时,Python解释器无法找到这个模块。



解决方法是在运行另一个程序之前,先安装 tqsdk 模块。可以使用pip命令来安装,命令如下:


pip install tqsdk


如果你已经安装了 tqsdk 模块,但是仍然出现这个错误,可能是因为Python解释器无法找到这个模块的路径。可以尝试在代码中添加如下代码:


import sys

sys.path.append("tqsdk模块的路径")


其中,"tqsdk模块的路径"是 tqsdk 模块所在的路径。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-10 23:16:58 | 显示全部楼层
你好,这个问题可能是由于Python的环境问题导致的。当你直接运行bu.py时,你可能在一个包含tqsdk模块的Python环境中。但是,当你使用subprocess.call([\"python\", script_path])来运行bu.py时,你可能在一个不同的Python环境中,这个环境可能没有安装tqsdk模块。

这里有几种可能的解决方案:

1. 指定Python环境:你可以尝试在subprocess.call中指定Python环境。例如,如果你知道tqsdk模块安装在C:\\Python37\\python.exe的Python环境中,你可以这样写:
subprocess.call(["C:\\\\Python37\\\\python.exe", script_path])

2. [b]在当前环境中安装tqsdk模块[/b]:你可以尝试在当前环境中安装tqsdk模块。你可以在命令行中输入以下命令:
pip install tqsdk

或者,如果你使用的是Python3,你可以输入:
pip3 install tqsdk

3. 使用虚拟环境:你也可以考虑使用Python的虚拟环境。虚拟环境可以帮助你管理不同项目的Python环境和依赖,避免不同项目之间的依赖冲突。你可以使用venv模块来创建和管理虚拟环境。具体的使用方法,你可以参考Python的官方文档。

希望这些信息能帮助你解决问题!如果还有其他问题,欢迎继续提问。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-10 23:18:24 | 显示全部楼层
您好!根据您提供的信息,报错信息显示缺少名为 'tqsdk' 的模块。这意味着您在运行 bu.py 时需要 tqsdk 模块,并且在通过其他文件运行时无法找到该模块。

一种可能的原因是,在您单独运行 bu.py 的环境中安装了 tqsdk 模块,但是在通过其他文件运行时的环境中没有安装该模块。bu.py 程序在导入 tqsdk 模块时会尝试从 Python 的搜索路径中找到该模块,如果没找到就会报错。

您可以尝试在通过其他文件运行 bu.py 的环境中安装 tqsdk 模块来解决这个问题。可以使用以下命令通过 pip 安装:

[/code]
pip install tqsdk
[/code]

另外,为了避免可能因为环境问题而导致的错误,建议您在通过其他文件运行 bu.py 时,先切换到 bu.py 所在的目录,再运行命令,例如:
subprocess.call(["python", "-m", "bu"], cwd="C:\\Users\\24954\\PycharmProjects\\DemoAccTest\\STRpack_1")
这样可以确保在运行 bu.py 时,Python 进程的当前工作目录正确设置。

希望这些解决方案对您有帮助,如果还有其他问题,请随时追问!

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-10 23:19:57 | 显示全部楼层
我是安装了模块tqsdk的了,直接运行bu.py就没有问题,写个脚本来打开它就有问题。
因为一次需要打开很多个这样的文件,不想每次都一个一个点开。。。很累,就想这样偷懒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-10 23:28:56 | 显示全部楼层
谢谢!新问题涌现。。。
我用pip在终端又安装了一次,确实报错没有了,
但是,我想同时让这个文件运行后,运行好多个文件,我指定了很多文件,但是只给我运行第一个文件。
比如:

源码:
import subprocess

# 要运行的脚本文件列表
scripts = ['bu.py',
           'c.py',
           'eg.py',
           'FG.py',
           'l.py',
           'm.py',
           'MA.py',
           'pp.py',
           'rb.py',
           'RM.py',
           'SA.py',
           'SR.py',
           'TA.py',
           'v.py',
           'y.py']

# 使用subprocess并行运行脚本
for script in scripts:
    subprocess.call(['python', script])

我该怎么样才能让这些文件同时运行呢?现在只运行一个bu.py, 剩下的都没有反应。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-10 23:52:55 | 显示全部楼层
好吧,其它问题换新帖,此贴问题解决。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 09:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表