2013-03-13 134 views
0

问题pyinstaller找不到鹅文件路径

为什么会Pyinstaller不goose文件?这是可执行文件创建者还是我的代码的问题?

代码

from goose.Goose import Goose 
url = 
'http://sociedad.elpais.com/sociedad/2012/10/27/actualidad/1351332873_157836.html' 
g = Goose({'debug':False,'enableImageFetching': False,'localStoragePath':'./tmp'}) 
article = g.extractContent(url=url) 
#article.title 
print article.cleanedArticleText[:150].encode("utf8","ignore") 

错误日志从Pyinstaller

我的程序,与pyinstaller创建,未能找到该路径鹅文件:

IOError: Couldn't open file C:\Users\user\Desktop\dist\main.exe?118272\goose/resources/text/stopwords-en.txt 

出现这种情况:

Traceback (most recent call last): 
    File "<string>", line 15, in <module> 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.Goose",line 52, in extractContent 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.Goose",line 59, in sendToActor 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.Crawler", line 86, in crawl 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.extractors", line 245, in calculateBestNodeBasedOnClustering 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.text", line 97, in __init__ 
    File "C:\Users\user\Desktop\build\pyi.win32\main\out00-PYZ.pyz\goose.utils",line 76, in loadResourceFile 
    IOError: Couldn't open file C:\Users\user\Desktop\dist\main.exe?118272\goose/resources/text/stopwords-en.txt 

怎么了?

+0

请问您可以添加您的Python代码,以便我们可以尝试复制您的错误? – xxmbabanexx 2013-03-13 01:58:30

+0

看起来代码^上dpaste – 2013-03-13 02:06:02

回答

0

似乎goose需要数据文件以及Python源代码才能正常运行。例如。它查找goose/resources/text/stopwords-en.txt。当您使用PyInstaller冻结Python应用程序时,如果goose在标准文件系统位置查找其资源文件,它们将不会存在,因为当您使用PyInstaller创建可执行文件时,所有文件都在安装程序中。

因此,您必须告诉PyInstaller将这些额外资源添加到您的可执行文件中,然后修改goose代码以从PyInstaller生成的exe中运行时从备用位置获取其资源。

详细信息在PyInstaller手册的Accessing Data Files标题下。

+0

我尝试所有的方法加载文件,也许我尝试错了,但它并没有帮助 – 2013-03-13 02:23:07