web-dev-qa-db-ja.com

PyInstallerが単純なHello Worldプログラムで動作しない

したがって、私は64ビットのWindows 7で実行しており、PyinstallerをPipとPyWin32でセットアップしました。 python 2.7。

このコードで簡単なHello Worldプログラムを作成しました

print "hello world!"

ファイルをPyInstallerと同じディレクトリに配置し、このコードをコマンドプロンプトで実行しました

pyinstaller.py helloWorld.py

しかし、それを試してみると、次のエラーメッセージが表示されます。

Error loading Python DLL: C:\PROGRA~1\PYINST~1.1\build\HELLOW~1\python27.dll (error code 126)

私は何を間違っているのですか、どうすれば修正できますか?

23
user1768884

-Fフラグを指定して実行し、スタンドアロンexeを生成します。

pyinstaller.py -F helloworld.py

pyinstaller.exe -F helloworld.py

Dist/helloworld.exeに出力されます

これは、-Fを使用しない場合とは異なる場所です。必ず正しいexeを後で実行してください。

37
tul

@tul、ありがとう! pyinstallerの私のバージョンはdist\ helloworld.exeしかし!

C:\ Python27\Scripts ...から起動すると、C:\ Python27 \になります。 Scripts\dist ...も!

しかし、それがどこにあっても、クリックするだけでいつでも再コンパイルできるように、.-の横にbatch fileを置くことをお勧めします。

.pyの場所にある.exeのみが存在するように設定し、一時的なものは一時ディレクトリに移動します。

@echo off
:: get name from filename without path and ext
set name=%~n0
echo ========= %name% =========

:: cut away the suffix "_build"
set name=%name:~0,-6%
set pypath=C:\Python27\Scripts
set buildpath=%temp%

if not exist %name%.py (
    echo ERROR: "%name%.py" does not exist here!
    pause
    exit /b
)

%pypath%\pyinstaller.exe --onefile -y %~dp0%name%.py --distpath=%~dp0 --workpath=%buildpath% --specpath=%buildpath%

.pyファイルに「_build」を加えた名前を付け、バッチスクリプトのサフィックスを再度切り取りました。ボイラ。

3
ewerybody