ここの答え(How to include chromedriver with pyinstaller?)に示唆されているようにPyinstaller仕様ファイルを更新した後も、chromedriverはまだ生成されたアプリケーションファイルからアクセスされません。問題は.\\selenium\\webdriver
である可能性がありますか?それは答えからコピーされたもので、Windows OS固有のものかどうかはわかりません。Pyinstallerで生成されたアプリケーションが指定されたバイナリ(chromedriver)にリンクしていません
ターミナルワークでUNIX実行ファイルを実行し、chromedriverにアクセスします。
フルスペック・ファイルは次のとおりです。
# -*- mode: python -*-
block_cipher = None
a = Analysis([‘scriptname.py'],
pathex=['/Users/Name/Desktop'],
binaries=[('/usr/local/bin/chromedriver', '.\\selenium\\webdriver')],
datas=None,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=‘app name’,
debug=False,
strip=False,
upx=True,
console=False)
app = BUNDLE(exe,
name=‘appname.app',
icon=None,
bundle_identifier=None)
ラインpyinstaller appname.spec scriptname.py --windowed --onefile
アプリを生成するための端末で使用されています。
はい、「\\ \\セレンwebdriverを」をWindowsの相対パスを示しています。クロムドライババイナリをバンドルに配置する場所です。 Unixでは、./selenium/webdriverとなります。しかし、私はこれをWindowsで試してみましたが、まだクロムドライブを置いていました。生成されたバンドルにchromedriverを実行可能なdist/selenium/webdriverディレクトリがありますか? – monami
ありがとうございます。しかし、現在は、クロムドライバが/ usr/bin(/ usr/local/binではなく)に置かれているだけで、specファイルに何が置かれているかに関係なく表示されます。結果のapp/exeファイルにchromedriverをバンドルすることができますか? – Phillip
pyinstallerを実行した後、chromeriver実行ファイルは "bundlepath"/dist/selenium dirに存在しますか?あなたのpythonコードでchromedriverをどうやってセットアップしますか?バンドルされているときは、PATHは使用しませんが、chromedriverへのパスを次のように設定します(リモートの例です): 'dir = os.path.dirname(__ file__) chrome_path = os.path.join(dir、 'webdriver'、 'chromedriver.exe') サービス= service.Service(chrome_path)... ' – monami