【问题标题】:ImportError: No module named texttable (igraph, py2exe,cx freeze/gui2exe)ImportError: No module named texttable (igraph, py2exe,cx freeze/gui2exe)
【发布时间】:2013-01-31 11:06:37
【问题描述】:

我花了 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 界面。没有运气。无论我尝试什么,都会出现同样的错误。

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

【问题讨论】:

    标签: module py2exe igraph cx-freeze gui2exe


    【解决方案1】:

    igraph是动态导入texttable,所以冻结工具不知道需要把模块拷贝进去。

    在 cx_Freeze 中,您可以将 igraph.vendor 添加到“包”(see the docs) 以强制它从该包中复制所有内容。 py2exe 可能有类似的选项。

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

    【讨论】:

    • 您的解决方案确实有效,而且很容易理解。太感谢了! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2011-10-19
    • 1970-01-01
    • 2015-09-10
    • 2012-08-12
    • 2011-10-19
    • 2018-01-19
    相关资源
    最近更新 更多