导入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按钮命令运行,都面临同样的问题。有任何想法吗?
无法找到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安装。