2016-07-30 9 views
5

おはよう!pyinstallerを使用しているときにdllファイルが見つからない

私はqt5、pyqt5、sip14.8でpython 3.5.2を使用しています。 最新のpyinstaller bracnch(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フォルダに追加しようとしましたが、それは助けになりませんでした。

ご迷惑をおかけして申し訳ありません。

+1

'あなたのexeに 'dllを挿入するのは難しい方法です。ビルダーの設定に 'as source 'を追加してみてください。 'x import yから 'というものが' import x.y'や 'import x.y as z'にはありません – dsgdfg

答えて

14

これは回避策に似ている可能性があり、Pyinstallerが修正を必要とする可能性があります。

私は--paths引数はなど、Qt5Gui.dllQt5Core.dllを含むディレクトリを指していることが分かったが、通常unfoundライブラリを含む--Path引数ポインティングディレクトリが問題を解決追加

pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py 
+0

それは働いた!私は3日間それを費やし、あなたのソリューションは機能しました!ありがとうございました! – shultz

+0

私にとっても同じです。このおかげで大変感謝しています。私はそれをあきらめていた。 --pathsを指定すると動作します。 – MrLeeh

+0

仮想環境を使用する場合は、--pathsを 'venv \ Lib \ site-packages \ PyQt5 \ Qt \ bin'に設定することもできます。 – MrLeeh

0

を助けました。 PyInstaller 3.3devを使用している場合、コマンド文字列の解析に問題がある可能性があります。これは通常、パスにスペースが含まれている場合に発生します。そのような場合は、PyInstallerで生成されたのファイルを.specに変更し、PyInstallerで実行して実行可能ファイルを作成することができます。

pyinstaller file_name.spec 

うまくいけば、これはこれは今pyInstallerの最新の開発ブランチで修正されてい