我正在尝试运行一个GUI,它首先向用户查询输入文件(使用wxpython),然后处理该文件中的数据以显示在图形上(使用pyside和matplotlib)。我在Anaconda环境中运行它。整个设置在PC上工作正常,但是当我将它传输到Mac时,我开始出错。
注意:我很确定问题出在wxpython上,因为我尝试使用作为命令行arg给出的输入文件来运行程序,而不是弹出wxpython输入文本框。这完全正常(图表显示,没有关闭或有任何其他错误)。
当我使用python运行程序时,我立即收到错误:
$ python graph_app_main.py
This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your Mac.
我查找了人们使用wxpython移植到Mac的类似问题 - 有几个地方(ex.)建议使用pythonw而不是python,但后来我遇到了一个seg错误。任何转向使用pythonw的人似乎都没有设置故障。
当我用pythonw运行程序时,它会显示输入文本框,让我输入输入文件名,然后显示图形。然而,大约一秒后,图表消失了,我从Mac“python意外退出”收到一条错误消息。
$ pythonw graph_app_main.py
/Users/rwicks/anaconda/envs/PIXL/bin/pythonw: line 3: 943 Segmentation fault: 11 /Users/rwicks/anaconda/envs/PIXL/python.app/Contents/MacOS/python "$@"`
这是Mac的错误日志(太多文字适合主体,所以我链接了它) http://textuploader.com/xhzi
我真的很茫然,因为没有人似乎有类似的问题。我可能不得不切换到另一个也有输入框但更便携的模块。
编辑:这是我的所有进口
# graph_app_main - creates a GraphApp class and
# calls methods from the Data Parser to get data file from user,
# parse the data, and finally pass that data into the GraphApp
from __future__ import print_function
import sys
import os.path
from graph_app import GraphApp
from data_parser import *
from PySide.QtGui import *
和
#GraphApp Class
from __future__ import print_function
import matplotlib
matplotlib.rcParams['backend.qt4']='PySide'
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import (FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from PySide.QtCore import *
from PySide.QtGui import *
和
#Data Parser where I have the wx input box ask for a data file
from __future__ import print_function
import wx