pyinstaller无法找到鹅文件路径

时间:2013-03-13 00:47:25

标签: python pyinstaller goose

问题

为什么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

出了什么问题?

1 个答案:

答案 0 :(得分:0)

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

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

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