0

質問

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 で作成された私のプログラムは、このパスで goose ファイルを見つけることができません:

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

どうしたの?

4

1 に答える 1

0

goose通常の操作には、Python ソースに加えてデータ ファイルが必要なようです。例えば。見上げるgoose/resources/text/stopwords-en.txt。PyInstaller を使用して Python アプリをフリーズするとgoose、リソース ファイルの標準ファイル システムの場所を検索しても、PyInstaller を使用して実行可能ファイルを作成すると、すべてのファイルがインストーラー内にあるため、存在しません。

そのため、これらの余分なリソースを実行可能ファイルに追加するように PyInstaller に指示し、goosePyInstaller によって生成された exe から実行するときに別の場所からリソースを取得するようにコードを変更する必要があります。

詳細は、PyInstaller マニュアルのAccessing Data Filesの見出しの下にあります。

于 2013-03-13T02:15:29.453 に答える