いくつかのexeファイルに遭遇する問題と解決策を使用しpyInstallerの生成

このブログ「のオープンソースの画像注釈ツールlabelmeといえばのインストールと使用」、pyInstallerの入口のpythonファイルlabelmeプロジェクトmain.pyパッケージMAIN.EXEを使用するには、ファイルがlabelmeを与えるために、Windowsオペレーティングシステムで直接実行することができ、生成しましたプロセスイメージ注釈ツール・ソフトウェア・インターフェイス、いくつかの問題、いくつかを解決し、exeファイルの生成遭遇し、一部はまだ私はこの分野で働く友人を助けるために願って、だけでなく、自分自身にそのような質問助けた偉大な神を理解したい、解決します問題を解決するためには解決されていません。

1 exeファイルの問題をフラッシュバック

labelmeの実行pycharm、直接実行main.pyファイルは、プログラムが正常に実行できることを示し、labelme注釈ソフトウェアインタフェースすることができ、適切に実行することができます。その後、pyinstallツールを使用して、CMDコマンドラインpyInstallerのの-FEを使用:/ python_workspace / labelme / main.py、次のコマンドを入力し、あなたがEXE-からビルEXEが出現するまで、1〜2分待つ必要があるがMAIN.EXEファイルを生成00.tocが正常に完了しましたexeファイル生成の成功を示す表示されます。

 

 

次に、CMDウィンドウの結果はすぐにフラッシュバック、labelme画面が表示されない、ダブルクリックしてmian.exeを表示され、cmdはエラーメッセージが表示されませんでした。

エラーメッセージを表示するには、私はCMDで午前、MAIN.EXEは、単にMAIN.EXE入力するディレクトリにcdは、この時間MAIN.EXEを実行すると、次のエラーメッセージが表示されます。

 

 

エラーメッセージによると、あなたが見ることができ、問題が設定/ __ init__.pyファイルにある、ソフトウェアは、exeファイルのファイルを生成した後、ソフトウェアがファイルを見つけることができない、ファイルがconfigディレクトリにある、ファイルを読み始めるdefault_config.yaml私たちは、コードの行が読み込まdefault_config.yamlファイルで見つけ、__init__.pyコードを見に行きました。

CONFIG_FILE = osp.join(ここでは、 'default_config.yaml')

ここでは、ここでパスソフトウェアランタイムは、os.path.joinパスは、我々は、そのような私たちが直接default_config.yamlディレクトリdのlabelmeのディスクにファイルとして、このパス絶対パスを記述し、上記のコードを変更することができていますあります

#config_file = osp.join(ここで、 'default_config.yaml')
パス= 'D:\\ labelme'
CONFIG_FILE = osp.join(パス、 'default_config.yaml')

MAIN.EXEファイルを生成し、再びpyInstallerの使用。

MAIN.EXEを実行するためのファイルがlabelmeソフトウェアインタフェース、フラッシュバックの問題が解決されて入力することができますダブルクリックします。

2アイコンは、問題が表示されません

EXEファイルを生成した後、アイコンが正しく表示されない、通常のアイコンを表示することができpycharmの実行main.pyを使用して、アイコンの一部のアイコンがあります。

MAIN.EXE業績

 

 

pycharmでの業績

 

 

情報は問題は映像データが失われたときにファイルをexeファイルに変換するのpyInstallerのでなければならないことを示して下さい。

解決策はpyInstallerのは、exeファイルを変換するとき、それは問題のある絵に対処しないように、アイコンファイルを保存するためにBASE64を使用することです。このように、私はそれが理論的には可能である、模擬試験に合格しなかったが、私は確認していません。

インターネットはまた、いくつかの入門パッケージのアイコンのブログを持っている、あなたはメソッドが検証をテストするものではありません、直接実行可能ファイルにアイコンパックをパックすることができたときに、パスのアイコンを変更します。

質問3は、いくつかのマシンで実行することはできません

MAIN.EXEは、ファイルやdefault_config.yamlファイルがlabelmeフォルダを入れて、そのフォルダのlabelme Dのルートディレクトリにコピーされ、生成、テストは、複数のコンピュータ上で実行されています。

3.1 MAIN.EXEを実行するために、ダブルクリックして

都是在windows系统64位机器上测试的,有的机器能够正常运行,有的机器报错。报错信息是“此应用无法在你的电脑上运行,若要找到适用于你的电脑的版本,请咨询软件发布者。”尝试解决,在百度中查找相关报错信息,提示是兼容性问题,点击右键,选择属性,在兼容性中勾选兼容运行,依然报错。

3.2 右键以管理员身份运行

提示“windows找不到文件main.exe。请确定文件名是否正确后,再试一次。” ,在百度中查找windows找不到文件等信息,采取了一些方法,比如利用sfc /scannow命令,扫描修复系统,执行后,main.exe依然不能打开。

3.3 在命令行运行

在cmd中,cd到labelme路径下,直接键入main.exe,报错信息为16位程序不能运行,系统将main.exe看作了16位的程序,阻止了程序的运行。然后查找不支持16位应用程序的解决办法,点击开始菜单,点击运行,输入gpedit.msc。选择计算机配置,选择管理模板,点击windows组件,点击应用程序兼容性。双击防止访问16位应用程序,点击已禁止,点击确定。我使用的笔记本上面是win10系统家庭版,还不能运行gpedit.msc,还需要查找,先解决运行组策略的问题。在记事本中,输入一下内容:

 @echo off

  pushd "%~dp0"

  dir /b %systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gp.txt

  dir /b  %systemroot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>gp.txt

  for /f %%i in ('findstr /i . gp.txt 2^>nul') do dism /online /norestart /add-package:"%systemroot%\servicing\Packages\%%i"

  pause

说明:通过dir命令遍历系统盘servicing目录,寻找组策略的配置包,找到后写入到gp.txt文件,然后通过dism命令来安装组策略包。

然后将文件另存为gpedit.bat文件,然后运行,这样就把组策略加入到系统中了。

4 结语

出现报错信息,可以采用多种方式运行程序,这样程序会呈现不一样的错误提示信息,有的错误提示信息很有用,比如闪退问题,在命令行运行,就会有一些有用的错误提示信息,最后exe不能运行的解决,也是在命令行运行,提示了16位程序的问题。通过测试不同的提示信息,找到解决方法。

おすすめ

転載: www.cnblogs.com/coodream2009/p/10983329.html