私の質問hereの回答に記載されているように、Pyinstaller仕様ファイル(binaries=[('/usr/bin/chromedriver', './selenium/webdriver')]
)のbinaries
のchromedriverのパスを設定しても、正しく設定されていない限り効果はありません。つまり、chromedriverはPATH(この場合は/ usr/bin)内にある限りアクセスされます。私の質問は、他のマシンに手動でインストールする必要がないように、クロムドライブをバックグラウンドでバンドルする可能性について考えています。バイナリファイル(chromedriverなど)をPyinstallerでコンパイルされた1つのファイルapp/exeにバンドルする方法はありますか?
0
A
答えて
3
I pyInstallerのと正常にバンドルさchromedriver(残念ながら、私はexeファイルを実行した後、私のvirusscannerは、それをフラグが付けられますが、それは別の問題だが)
私はあなたの問題はあなたがwebdriverをへの正しいパスを与えていないということだと思いますスクリプト内で(キーワードexecutable_pathを使用して)また、クロムドライバーをデータファイルとして含めましたが、違いがあるかどうかはわかりません。
ここは私の例です。
sel_ex.py:
from selenium import webdriver
import os, sys, inspect # http://stackoverflow.com/questions/279237/import-a-module-from-a-relative-path
current_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe()))[0]))
def init_driver():
chromedriver = os.path.join(current_folder,"chromedriver.exe")
# via this way, you explicitly let Chrome know where to find
# the webdriver.
driver = webdriver.Chrome(executable_path = chromedriver)
return driver
if __name__ == "__main__":
driver = init_driver()
driver.get("http://www.imdb.com/")
はsel_ex.spec:それが格納されている場所、それは問題ではないはずが
....
binaries=[],
datas=[("chromedriver.exe",".")],
....
このように、chromedriverは次のように、メインフォルダに保存しましたスクリプトexecutable_path
免責事項: - 私は1つのファイル設定を使用していませんでしたが、それは違いはありません。 -my OSはウィンドウです
関連する問題
- 1. 誰もがPyinstallerでデータファイルを1つのファイルにバンドルしましたか?
- 2. Pyinstallerでコンパイルされたファイルのエラー
- 3. Linuxシステムで複数のバイナリファイルを1つのファイルにコピーする方法はありますか?
- 4. nodejsを1つの完全な静的なバイナリファイルにコンパイルする方法
- 5. 1つのバンドルがServiceReferenceから別のバンドルのBundleインスタンスを取得する方法はありますか?
- 6. -fPICなしでコンパイルされたコードに対してmexファイルをリンクする方法はありますか?
- 7. pyinstallerのバンドルされたイメージのファイルパス?
- 8. 1つのターゲットから別のターゲットにコンパイル元のファイルをコピー&ペーストする方法はありますか?
- 9. 2つのgcovファイルを1つにマージする方法はありますか?
- 10. 2つの.gcdaファイルを1つにマージする方法はありますか?
- 11. jarファイルがapkにコンパイルされているかどうかを確認する方法はありますか?
- 12. JSONファイルをJarファイルにバンドルする方法はありますか?
- 13. OSはどのようにコンパイルされたバイナリファイルを実行しますか?
- 14. Oliveで1つの変更されたファイルをコミットしてプッシュする方法はありますか?
- 15. 実行またはコンパイルされた.javaファイルのファイルパスを取得する方法はありますか?
- 16. Javascriptでバイナリファイルをexcuteする方法はありますか?
- 17. 1つのファイルにファイルをアップロードする方法はありませんか?
- 18. サーバサイドでコンパイルされた流星のcssバンドルを得る方法
- 19. コンパイルされたコマンドはどこにありますか?
- 20. コンパイルされたJSP Java(* __ jsp.java)ファイルはどこにありますか?
- 21. gnuplotの1つのファイルでデータをループする方法はありますか?
- 22. Webpackバンドルからオブジェクトを公開し、コンパイルされたバンドルに外部ライブラリを挿入する方法はありますか?
- 23. Angular2:JSONファイルからデータを取り込むためにコンパイルされた(バンドルされた)プロジェクトを作成するにはどうすればいいですか?
- 24. Rustライブラリにバイナリファイルまたはテキストファイルを含める方法はありますか?
- 25. ディレクトリを1つのファイルに圧縮する方法はありますか?
- 26. プールされたリストの2つのオブジェクトを1つのスクリプトで使用する方法はありますか。
- 27. 1つの関数Appに複数のコンパイルされたライブラリがあります
- 28. javascriptとtypescriptを1つのバンドルにコンパイルするにはどうすればよいですか?
- 29. webpackバンドルjsファイルをソースコードtsに変換する方法はありますか?
- 30. PHP/DHTML/JSコンポーネントをコンパイルまたはコンパイルする方法はありますか?
関連する投稿を明確にして整理するために、私はこの問題が別の場所で書かれた投稿で解決されたと考えています:http://stackoverflow.com/questions/41009492/pyinstaller-generated-app-does -not-link-to-the-specified-binary-chromedriverを指定します。答えを投稿した人に最後に行ったコメントが理由を示しています。 – Phillip
はい、経路が理由でした – Phillip