【问题标题】:Function cannot open file after py2exe compilepy2exe编译后函数无法打开文件
【发布时间】:2015-09-02 22:14:16
【问题描述】:

我正在使用rdkit。

使用py2exe 构建后,当我调用Draw.MolToImage 方法时出现错误:

Warning: unable to load font metrics from dir 
C:\pythonApp\dist\library.zip\rd
kit\sping\PIL\pilfonts
Traceback (most recent call last):
    File "app.py", line 470, in <module>
    img=Draw.MolToImage(part[i])
    File "rdkit\Chem\Draw\__init__.pyc", line 124, in MolToImage
    File "rdkit\Chem\Draw\MolDrawing.pyc", line 536, in AddMol
    File "rdkit\Chem\Draw\MolDrawing.pyc", line 351, in _drawLabel
    File "rdkit\Chem\Draw\spingCanvas.pyc", line 74, in addCanvasText
    File "rdkit\sping\PIL\pidPIL.pyc", line 333, in drawString
ValueError: bad font: Font(12,0,0,0,'helvetica')`

如果我将这些文件放入library.zip(至\rdkit\sping\PIL\pilfonts)或仅放入dist 文件夹并将pidPIL.py 中的路径更改为有效,则没有区别;应用程序仍然无法打开metrics.dat。

没有py2exe 转换,一切正常。

【问题讨论】:

    标签: python py2exe rdkit


    【解决方案1】:

    您是否在 setup.py 中使用“data_files”来包含 pilfonts 文件夹?

    例如大致如下:

    setup(
    
        data_files = [("pilfonts", glob.glob("\rdkit\sping\PIL\pilfonts\*.*"),
    
        options = {"py2exe": {"compressed": 2,
        # etc etc
    )
    

    【讨论】:

    • 我试过你的方法,也试过this solution,但没有任何结果。
    • pidPil.py 期望文件夹是什么/在哪里?添加一个打印/断点来解决这个问题。
    • 路径正确,但应用无法打开文件。我以其他方式“修复”了它。刚刚将渲染库更改为py2cairo。没有PIL 文件 - 没问题。
    猜你喜欢
    • 2016-08-08
    • 2016-01-05
    • 1970-01-01
    • 2012-09-04
    • 2011-09-11
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2014-09-17
    相关资源
    最近更新 更多