我正在使用Python。我的文件GUI.py
使用Yapsy将新插件包含到我的软件中。我已完成所有工作,现在我想使用py2exe生成可执行文件。我不知道如何命令py2exe包含Yapsy及其所有模块。我试过了,它不起作用:
opts = {
'py2exe': { "includes" : ["yapsy.PluginManager","sip", "matplotlib.backends", "matplotlib.backends.backend_qt4agg",
"matplotlib.figure","pylab", "numpy","matplotlib.backends.backend_tkagg"]}
...
setup(
name='PImageQT',
version='1.0',
author='Jaime',
package={'images/*', 'Windows6S/*', 'modulos6S/*', 'OperacionesPlugins/*'},
scripts=['GUI.py'],
console=["GUI.py"],
options=opts,
data_files=data_files,
zipfile=None
)
我在此链接http://notinthestars.blogspot.com.es/2011/04/using-python-plugin-scripts-with-py2exe.html中找到了一些内容,但它无法解决我的问题。
在我的每个插件的Gui.py文件中,我在菜单中添加了一个动作。可执行文件中的此菜单不会出现。
有谁知道我必须怎么做?
非常感谢。
编辑:
我使用断点和yapsy工作正常,但它没有找到我的插件目录。目录的名称是相同的。
编辑2:
路径正常,目录进入路径。我不知道为什么用py2exe打包后找不到插件目录。我设置目录的代码行与其他网页相同:self.manager.setPluginPlaces(["plugins"])
编辑3:
我尝试使用相对路径来搜索插件,但它不起作用。
self.manager.setPluginPlaces([os.getcwd() + os.sep + "plugins"])
编辑4:
今天,我试图列出目录是我和我的目录“插件”在。我不明白,但问题仍在继续。
print(os.listdir('.'))
编辑5:
这是无休止的故事。我已经使用PYInstaller制作一个可执行文件来检查问题是否是py2exe。它不起作用。现在我觉得问题是Yapsy。有什么想法吗?
答案 0 :(得分:2)
从你的编辑看来,问题似乎与访问一些打包的插件有关(而不是本身的yapsy模块)。
为此您可能需要检查以下两点:
当您致电self.manager.setPluginPlaces(["plugins"])
时,请注意路径“插件”可能与您认为的目录无关。您应该使用更具体的路径,使用py2exe的“我在哪里”常见问题解答提示:http://www.py2exe.org/index.cgi/WhereAmI
您也可以尝试将插件打包为data_files(就像您链接到的网页一样),我不确定如何处理“package”参数(在您的代码示例中)通过py2exe。
import logging
logging.basicConfig(level=logging.DEBUG)
答案 1 :(得分:0)
你可能需要包括所有的yapsy
opts = {
'py2exe': { "includes" : ["yapsy","sip", "matplotlib.backends", "matplotlib.backends.backend_qt4agg",
"matplotlib.figure","pylab", "numpy","matplotlib.backends.backend_tkagg"]}
...
setup(
name='PImageQT',
version='1.0',
author='Jaime',
package={'images/*', 'Windows6S/*', 'modulos6S/*', 'OperacionesPlugins/*'},
scripts=['GUI.py'],
console=["GUI.py"],
options=opts,
data_files=data_files,
zipfile=None
)
只是一个疯狂的猜测