如何在matplotlib中使用py2app?

2024-10-06 07:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我制作了一个应用程序,它使用matplotlib在tkinter窗口中显示一个绘图。我想创建一个独立的应用程序,我一直试图同时使用py2app和cx_freez,但当我试图编译程序时,两者都遇到了一个问题。我相信这个问题与matplotlib有关,因为当我故意禁用该模块的导入并进行编译时,该应用程序将启动,直到遇到需要matplotlib的代码时才会失败。我不确定我是否排除了设置.py文件。我尝试过使用一些代码from here,但收效甚微。在

当我运行我的设置.py终端内:

from setuptools import setup

setup(
    app=["Calculator.py"],
    setup_requires=["py2app"]
)

这是我在“完成”编译后在终端中遇到的错误:

^{pr2}$

当我尝试运行应用程序时,控制台中出现以下错误:

2015-07-21 22:17:55.588 Calculator[85122:57708133] Calculator Error
 Traceback (most recent call last):
   File "/Users/camon/Documents/Python Apps/Compiler/dist/Calculator.app/Contents/Resources/__boot__.py", line 81, in <module>
     _run()
   File "/Users/camon/Documents/Python Apps/Compiler/dist/Calculator.app/Contents/Resources/__boot__.py", line 62, in _run
     exec(compile(source, path, 'exec'), globals(), globals())
   File "/Users/camon/Documents/Python Apps/Compiler/dist/Calculator.app/Contents/Resources/Calculator.py", line 9, in <module>
     from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
   File "/Users/camon/Documents/Python Apps/Compiler/dist/Calculator.app/Contents/Resources/lib/python3.4/matplotlib/backends/backend_tkagg.py", line 7, in <module>
     from six.moves import tkinter_filedialog as FileDialog
   File "six.pyc", line 90, in __get__
   File "six.pyc", line 113, in _resolve
   File "six.pyc", line 80, in _import_module
 ImportError: No module named 'tkinter.filedialog'

在查看了这些错误之后,我发现在编译过程中没有添加一些模块或其他东西。我需要在我的设置.py文件?还是我需要用matplotlib来解决这个问题?在

还有。。。以下是我的程序中所有模块的列表:

import tkinter as tk
from tkinter import ttk
from math import *
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib import style
#from matplotlib import pyplot as plt
from matplotlib.figure import Figure
import random

编辑:

我发现matplotlib需要导入tkinter.filedialog和{}。一旦我这么做了,这个应用程序就启动了,并且似乎可以正常工作了。但是,当我编译它时,我仍然在终端中得到同样的错误。是设置.py仍然缺少元素?在


Tags: infrompyimportapp应用程序matplotlibtkinter