1

我花了 2 天时间试图解决这个问题,但我一无所获。

我尝试从我的 python 脚本中获取可执行文件。

脚本运行没有问题。我使用 igraph 在其中构建图表,这是我最喜欢完成这项任务的选择。

编译我的脚本后,我得到了预期的结果(包含我的 exe 及其内容的 Dist 文件夹)

当我尝试运行 exe 时,我收到了这个烦人的错误消息:

 File "igraph\__init__.pyc", line 36, in <module>
 File "igraph\clustering.pyc", line 38, in <module>
 File "igraph\summary.pyc", line 36, in <module>
 File "igraph\vendor\__init__.pyc", line 33, in vendor_import
ImportError: No module named texttable

我检查了许多与 ImportError 相关的线程。我进入了包含 texttable 的文件夹,它就在那里!它没有丢失!我已经尝试过改变路径但仍然没有成功。

在我的脚本的开头,我有:

import re
import os
import csv
import math
from igraph import *
import thread
import unicodedata
from time import sleep
import wx.grid as gridlib
import sys
import Tkinter
from Tkinter import *

我已经尝试过from igraph import Graph,但它仍然会寻找那个 TEXTTABLE。

我尝试过使用 py2exe、cx freeze 以及它们的 GUI2exe 的不错的 Gui 界面。没运气。无论我尝试什么,都会出现同样的错误。

如果解决方案很明显,我很抱歉。我不是专业人士。任何帮助深表感谢!

4

1 回答 1

4

igraph正在动态导入texttable,因此冻结工具不知道他们需要将模块复制进去。

在 cx_Freeze 中,您可以添加igraph.vendor到“包”(请参阅​​文档)以强制它从该包中复制所有内容。py2exe 可能有类似的选项。

或者,如果您import igraph.vendor.texttable在代码中的某个位置放置,冻结工具会拾取并知道包含它。

于 2013-02-15T13:22:37.017 回答