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

时间:2017-12-18 13:45:55

标签: python button tkinter import

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

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

test.py

import scipy
print ("hello world")

GUI.py

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 \用户布雷达\ PycharmProjects \ face_reg \面

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

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

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

1 个答案:

答案 0 :(得分: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安装问题。