Missing file in compiled py2exe app selenium

流过昼夜 提交于 2019-12-02 07:14:27

问题


I am trying to get my Selenium app to work. It compiles everything, but when I open the app it gives me this:

C:\Python34\dist>browse.exe
Traceback (most recent call last):
File "browse.py", line 9, in <module>
File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\webdriver.py",
line 43, in __init__
self.profile = FirefoxProfile()
File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\firefox_profile
.py", line 64, in __init__
WEBDRIVER_PREFERENCES)) as default_prefs:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Python34\\dist\\lib
rary.zip\\selenium\\webdriver\\firefox\\webdriver_prefs.json'

I'm using py2exe to bundle, and Firefox as my browser driver.

Setup.py:

from distutils.core import setup
import py2exe

setup(
console=['browse.py'],
options={
        "py2exe":{
                "skip_archive": True,
                "unbuffered": True,
                "optimize": 2
        }
}
)

回答1:


Check the original answer: Python - Trouble in building executable

You have to manually copy both webdriver.xpi and webdriver_prefs.json from C:\Python27\Lib\site-packages\selenium\webdriver\firefox to dist\selenium\webdriver\firefox




回答2:


This worked: Edit firefox_profile.py: WEBDRIVER_EXT, WEBDRIVER_PREFERENCES:

if getattr(sys, 'frozen', False): WEBDRIVER_EXT = os.path.join(os.path.dirname(sys.executable), "webdriver.xpi") WEBDRIVER_PREFERENCES = os.path.join(os.path.dirname(sys.executable), "webdriver_prefs.json") elif file: WEBDRIVER_EXT = os.path.join(os.path.dirname(file), "webdriver.xpi") WEBDRIVER_PREFERENCES = os.path.join(os.path.dirname(file), "webdriver_prefs.json")

goto the line "with open(...." and replace with "with open(WEBDRIVER_PREFERENCES) as default_prefs"



来源:https://stackoverflow.com/questions/25653870/missing-file-in-compiled-py2exe-app-selenium

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!