我在 Ubuntu 中使用硒创建了脚本,在那里工作得很好,但是当我将其移动到 windows10 时,我收到了很多错误,我试图一个接一个地修复它,直到我看到这个错误。我一直在寻找解决此问题的方法,但无法解决此错误。
Traceback (most recent call last):
File "D:/Users/b/Documents/Python/Bolt/GUI.py", line 180, in start
driver = l.start_chime() # start chime
File "D:UsersbDocumentsPythonBoltLogin.py", line 87, in start_chime
self.chime_driver = webdriver.Firefox(executable_path=self.PATH)
File "D:UsersbDocumentsPythonPython3.8libsite-packagesseleniumwebdriverfirefoxwebdriver.py", line 164, in __init__
self.service.start()
File "D:UsersbDocumentsPythonPython3.8libsite-packagesseleniumwebdrivercommonservice.py", line 72, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "D:UsersbDocumentsPythonPython3.8libsubprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:UsersbDocumentsPythonPython3.8libsubprocess.py", line 1307, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
File "C:Program FilesJetBrainsPyCharm 2020.1.2pluginspythonhelperspydev_pydev_bundlepydev_monkey.py", line 551, in new_CreateProcess
return getattr(_subprocess, original_name)(app_name, patch_arg_str_win(cmd_line), *args)
OSError: [WinError 193] %1 is not a valid Win32 application
当我尝试使用硒打开网络驱动程序时,就会发生这种情况。
self.myday_driver = webdriver.Firefox(executable_path=self.PATH)
有没有办法将脚本从Ubunto移动到Windows而不会出错?
我会尽力帮助你回答你的最后一个问题:
并且有没有方法可以将脚本从 Ubunto 移动到 Windows 没有 出错?
是的,你听说过码头工人吗? https://www.docker.com/从本质上讲,docker 将创建隔离的环境,这些环境将在安装了 docker 的每台机器上运行。这些环境可以在 dockerfile 中配置,基本上,您需要按照以下步骤操作:
- 在两台计算机上安装 docker。我已经在Windows和RH上使用过所有这些过程来自动化所有这些过程并最大限度地减少错误。
- 创建一个 docker 文件,结构将是这样的:
FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py
- 所以它将创建一个基于 ubuntu镜像的环境
- 将当前目录 (.( 中的所有文件复制到/app(请记住,这将是一个 Ubuntu 映像,因此您有一个带有/etc/home 等的标准文件夹结构(
- 运行命令make(在您的情况下可以使用pip安装一些依赖项(
- 运行 python 命令。
你也可以找到可供使用的python镜像,所以你可以得到一个安装了python的linux镜像,而不是ubuntu:late,然后你只需要安装你的依赖项。
对于开发人员来说,这是一个很好的工具,我建议研究它,阅读文档以了解概念,它将简化您的生活。
希望对您有所帮助。
此错误消息...
OSError: [WinError 193] %1 is not a valid Win32 application
。意味着底层操作系统无法识别%1
即系统变量PATH
为有效的 Win32 应用程序,即可执行二进制文件。
要启动Selenium驱动的GeckoDriver控制的Firefox会话,您需要:
下载最新版本的壁虎驱动程序二进制版本,将其放入您的系统中。
接下来,在代码块中,您需要提及二进制文件通过密钥
executable_path
的绝对路径,如下所示:from selenium import webdriver self.myday_driver = webdriver.Firefox(executable_path=r'C:pathtogeckodriver.exe')