user_n 发表于 2023-10-10 23:16:22

报错:ModuleNotFoundError: No module named 'tqsdk'

先谢过义士相助!

我尝试用一个程序去运行另一个程序,代码如下:
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文件,就会产生这样的错误。

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

谢谢啦!

isdkz 发表于 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 模块所在的路径。

陶远航 发表于 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. 在当前环境中安装tqsdk模块:你可以尝试在当前环境中安装tqsdk模块。你可以在命令行中输入以下命令:

pip install tqsdk


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

pip3 install tqsdk


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

希望这些信息能帮助你解决问题!如果还有其他问题,欢迎继续提问。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-10-10 23:18:24

您好!根据您提供的信息,报错信息显示缺少名为 'tqsdk' 的模块。这意味着您在运行 bu.py 时需要 tqsdk 模块,并且在通过其他文件运行时无法找到该模块。

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

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


pip install tqsdk


另外,为了避免可能因为环境问题而导致的错误,建议您在通过其他文件运行 bu.py 时,先切换到 bu.py 所在的目录,再运行命令,例如:


subprocess.call(["python", "-m", "bu"], cwd="C:\\Users\\24954\\PycharmProjects\\DemoAccTest\\STRpack_1")


这样可以确保在运行 bu.py 时,Python 进程的当前工作目录正确设置。

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

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

user_n 发表于 2023-10-10 23:19:57

我是安装了模块tqsdk的了,直接运行bu.py就没有问题,写个脚本来打开它就有问题。
因为一次需要打开很多个这样的文件,不想每次都一个一个点开。。。很累,就想这样偷懒。

user_n 发表于 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, 剩下的都没有反应。

user_n 发表于 2023-10-10 23:52:55

好吧,其它问题换新帖,此贴问题解决。。。
页: [1]
查看完整版本: 报错:ModuleNotFoundError: No module named 'tqsdk'