IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python中scripts空的_问题:win10中python无法打开空设备文件os.devnull 实测解决 -> 正文阅读

[Python知识库]python中scripts空的_问题:win10中python无法打开空设备文件os.devnull 实测解决

环境 win10 + python3.8
通过selenium 库打开chrome浏览器时报错如下:

Traceback (most recent call last):
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\common\service.py”, line 71, in start
self.process = subprocess.Popen(cmd, env=self.env,
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\subprocess.py”, line 804, in init
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\subprocess.py”, line 1169, in _get_handles
c2pwrite = msvcrt.get_osfhandle(self._get_devnull())
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\subprocess.py”, line 952, in _get_devnull
self._devnull = os.open(os.devnull, os.O_RDWR)
FileNotFoundError: [Errno 2] No such file or directory: ‘nul’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “.\jd.py”, line 93, in
jd = JD_Verification_code()
File “.\jd.py”, line 22, in init
self.driver = webdriver.Chrome(options=options)
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py”, line 70, in init
super(WebDriver, self).init(DesiredCapabilities.CHROME[‘browserName’], “goog”,
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\chromium\webdriver.py”, line 90, in init self.service.start()
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\common\service.py”, line 81, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
在这里插入图片描述

报错信息给的解决方案是下载对应版本的chromedriver.exe到环境变量里面去。
实际下载后,并没有解决问题。

以下提出我自己的思路。

根据报错信息定位到python库源码中subprocess.py 952行。源码如下:
def _get_devnull(self):
if not hasattr(self, ‘_devnull’):
self._devnull = os.open(os.devnull, os.O_RDWR)
return self._devnull
这里是打开os.devnull。报错信息提示其值为nul。实际debug之后也确实如此。
那根据我自己的经验,源码本意应该是打开设备节点nul,把不需要的log等信息输出到该节点。如果是在linux系统上应该是没问题的,因为linux有这样一个null设备节点用来输出垃圾信息的。win10上可能没有这个节点,所以报这个错。
那我的解决方案是给它赋值一个实际存在的txt文件,让系统能正常打开并写入信息就可以了。
1.我对库源码进行改造如下:
def _get_devnull(self):
if not hasattr(self, ‘_devnull’):
self._devnull = os.open(‘c:/null.txt’, os.O_RDWR)
return self._devnull
在这里插入图片描述

2.然后再在c:/盘新建一个null.txt。再运行代码能够完美地正常运行。

运行完成后不出我所料发现这个null.txt里有一些运行时log:
在这里插入图片描述

如果各位遇到相同的问题,不妨参考本人的解决思路。如果完美解决,不妨给点个赞。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 12:59:47  更:2021-12-03 13:00:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:41:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码