Windowsでスタンドアロンで使用できる.exeバイナリを作成することを目的として、pip経由でPyinstallerをダウンロードしてインストールしました。私のアプリ/スクリプトは、これとほぼ同じで、特定のサブレディット (reddit アカウントなしでアクセスできます) から画像をダウンロードします。
コンソールまたは IDE を介して .py スクリプトを実行すると、 LinuxとWindowsの両方で期待どおりに動作します。PRAWのドキュメントによると、C:\Users\myName\AppData\praw.ini
PRAWのインストール後に構成ファイルが必要ですが、現在システムから欠落していますが、前述のように、スクリプトはPythonインタープリターで問題なく実行されます。
Pyinstaller を使用して .exe にパッケージ化すると問題なく動作しますが、(管理者権限の有無にかかわらず) 実行すると次のエラーで失敗します
C:\Users\John\IdeaProjects\monsteraday-subreddit-image-downloader\dist>monsteraday-image-downloader.exe
Traceback (most recent call last):
File "<string>", line 5, in <module>
File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py",
line 363, in load_module
exec(bytecode, module.__dict__)
File "C:\Python27\lib\site-packages\praw\__init__.py", line 40, in <module>
from praw.settings import CONFIG
File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py",
line 363, in load_module
exec(bytecode, module.__dict__)
File "C:\Python27\lib\site-packages\praw\settings.py", line 47, in <module>
CONFIG = _load_configuration()
File "C:\Python27\lib\site-packages\praw\settings.py", line 45, in _load_configuration .format(locations))
Exception: Could not find config file in any of: [u'C:\\Users\\John\\AppData\\Local\\Temp\\_MEI52442\\praw\\praw.ini', u'C:\\Users\\John\\AppData\Roaming\\praw.ini', u'praw.ini']
monsteraday-image-downloader returned -1
この時点で、両方のことを明確にする必要があります
python myscript.py
コンソールで実行中myscript.exe
コンソールまたはダブルクリックで 生成された pyinstaller を実行する
同じ Win8.1 x64 マシンで、必要なすべてのライブラリ (PRAW を含む) がインストールされ、Python 2.7 32 ビット (ターゲットの .exe との互換性のため) がインストールされ、ユーザーpraw.ini 構成が /AppData/ dir にない状態で試行されました。グローバルなpraw.ini を適切にC:\Python27\Lib\site-packages\praw\praw.ini
Pyinstaller のドキュメントには、.spec ファイルを使用してラップされた .exe に外部ファイルを含めることが記載されていますが、すでに praw.ini 構成がない/必要がないため、これがどのように機能するかわかりません。Py2exe でも同じ結果が得られます。これを修正して、このツールを簡単に使用する方法を作成するにはどうすればよいですか?