良い一日!
python 3.5.2、qt5、pyqt5、およびsip14.8を使用しています。最新のpyinstallerブランチ(3.3.dev0 + g501ad40)も使用しています。
基本的なhello worldプログラム用のexeファイルを作成しようとしています。
from PyQt5 import QtWidgets
import sys
class newPingDialog(QtWidgets.QMainWindow):
def __init__(self):
super(newPingDialog, self).__init__()
self.setGeometry(50, 50, 500, 300)
self.setWindowTitle("hello!")
self.show()
app = QtWidgets.QApplication(sys.argv)
GUI = newPingDialog()
sys.exit(app.exec_())
最初は、crt-msiに関するエラーが発生していました。そこで、SDKとc ++ランタイムを再インストールし、環境に追加しました。しかし、現在、dllが見つからないというエラーが発生し続けています(qsvg、Qt5PrintSupport)
6296 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\imageformats\qsvg.dll
6584 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\iconengines\qsvgicon.dll
6992 WARNING: lib not found: Qt5PrintSupport.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\Qt\plugins\printsupport\windowsprintersupport.dll
7535 WARNING: lib not found: Qt5PrintSupport.dll dependency of c:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\QtPrintSupport.pyd
8245 INFO: Looking for eggs
8245 INFO: Using Python library c:\users\me\appdata\local\programs\python\python35\python35.dll
8246 INFO: Found binding redirects:
確認したところ、両方のdllが存在し、PATHが設定されています。また、distフォルダに手動で追加しようとしましたが、役に立ちませんでした。
アドバイスをいただければ幸いです!
これは回避策のようなもので、Pyinstallerは修正が必要な場合があります。
Qt5Core.dll、Qt5Gui.dllなどを含むディレクトリを指す--paths
引数が役立つことがわかりました
pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py
これはPyInstallerの最新の開発ブランチで修正されました。 このGitHub上のPyInstallerの問題 を参照してください。
この問題については、githubおよびstackoverflowですべての複雑なソリューションを読みました。ただし、以下の簡単な解決策は私のために働いたものです:
ステップ1:pip3アンインストールpyinstaller
ステップ2:pip install pyinstaller
ステップ3:pyinstaller --onefile filename.py
同じ問題に直面している2台の異なるコンピューターでこのソリューションを試しました。両方とも機能しました。これも同様に機能するかどうかをお知らせください。その後、親指を上げていただければ幸いです。乾杯
通常、見つからないライブラリを含む--Path
引数ポインティングディレクトリを追加すると、問題が解決します。 PyInstaller 3.3devを使用している場合、コマンド文字列の解析に問題がある可能性があります。これは通常、パスにスペースが含まれている場合に発生します。そのような場合、PyInstallerによって生成された.spec
ファイルのpathex
引数を変更し、PyInstallerで実行して実行可能ファイルをビルドできます。
pyinstaller file_name.spec
うまくいけば、これはすぐに修正されます.....
26095警告:libが見つかりません:c:\ users\user\appdata\local\programs\python\python36-32\DLLs\select.pydのapi-ms-win-crt-runtime-l1-1-0.dll依存関係
C:dllでドライブを検索し、pyinstallerコマンドでパスを設定します。以下のコマンドは、Windows 10の上記のpyinstallerエラーを修正しました。
pyinstaller --paths "C:\Windows\WinSxS\x86_Microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f" hello.py