导入python模块/ site-package(例如scipy)可以从脚本(a.py)开始,但不能从tkinter button命令开始

问题描述 投票:0回答:1

导入python site-package(例如'scipy')可以从脚本test.py中正常工作,但不能从tkinter button命令中工作。单击按钮时,错误显示:

ModuleNotFoundError:没有名为'scipy'的模块

test.朋友

import scipy
print ("hello world")

GUI.朋友

import sys
import os
import tkinter
top=tkinter.Tk()

def startCamera():
    os.system('python test.py')

B=tkinter.Button(top,text="hello",command= startCamera)
B.pack()
top.mainloop()

test.py和GUI.py都在同一个文件夹中:C:\ Users \ Breda \ PycharmProjects \ face_reg \ face

scipy包中:C:\ Users \ Breda \ Anaconda3 \ Lib \ site-packages

sys.path变量包含:C:\ Users \ Breda \ Anaconda3 \ Lib \ site-packages

我试图在test.py中导入其他站点包并通过GUI按钮命令运行,都面临同样的问题。有任何想法吗?

python button tkinter import
1个回答
0
投票

无法找到scipy模块的原因是因为os.system运行的python可执行文件不是安装了scipy的python安装的一部分。 (这台机器上安装了多个python发行版。)

该问题是通过推杆确诊的

import sys
print(sys.executable)

test.py文件的顶部(在import scipy之前)。这将打印python可执行文件的路径。然后test.py运行两次 - 一次从命令行,一次通过GUI.py。两个测试运行打印不同的路径。

问题由setting Pycharm's default python executable解决,安装了scipy模块的Anaconda Python3安装。

© www.soinside.com 2019 - 2024. All rights reserved.