Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Win10 open(os.devnull) 报错:FileNotFoundError: [Errno 2] No such file or directory: 'nul' #473

Closed
1 task done
didme123 opened this issue Apr 15, 2024 · 18 comments
Closed
1 task done

Comments

@didme123
Copy link

didme123 commented Apr 15, 2024

Issues

  • I have browsed through the Issues. 我已浏览过Issues,确定没有重复提问。

Umi-OCR version 程序版本

2.0

Windows version 系统版本

win10

OCR plugins Used 使用的OCR插件

No response

Reproduction steps 复现步骤

Image_1713167419067

Problem screenshots or related files (optional) 问题截图或相关文件(可选)

No response

@didme123
Copy link
Author

楼图是2.1的
2.0是这样
Image_1713172484828

@didme123
Copy link
Author

两个版本都试了,帮助文档的方法也都试了,求救!!!

@hiroi-sora hiroi-sora changed the title 引擎启动失败 Win10 不存在空设备文件os.devnull,初始化运行环境失败 Apr 15, 2024
@hiroi-sora
Copy link
Owner

hiroi-sora commented Apr 15, 2024

你应该使用的是第三方的Win10“纯净版”或者“精简版”,或者好几年前一直没有更新过的官方win10,缺失了一些系统文件,导致程序无法获取空设备文件os.devnull,使得程序初始化失败。

解决方法1:

https://blog.csdn.net/zxl05403/article/details/80701496

解决方法2:

用记事本打开 UmiOCR-data\main.py ,找到以下几行:

    # 尝试获取控制台的输出对象
    try:
        fd = os.open("CONOUT$", os.O_RDWR | os.O_BINARY)
        fp = os.fdopen(fd, "w", encoding="utf-8")
    except Exception as e:
        fp = open(os.devnull, "w", encoding="utf-8")

删掉这几行,改为:

    # 将输出流导向实际文件
    fp = open(“null.txt”, "w", encoding="utf-8")

(原样复制,不要少了空格缩进)

更多方法: 参考

@didme123
Copy link
Author

你应该使用的是第三方的Win10"纯净版"或者"精简版",或者好几年前一直没有更新过的官方win10,缺失了一些系统文件,导致程序无法获取空设备文件,使得程序初始化失败。os.devnull

解决方法1:

https://blog.csdn.net/zxl05403/article/details/80701496

解决方法2:

用记事本打开 ,找到以下几行:UmiOCR-data\main.py

    # 尝试获取控制台的输出对象
    try:
        fd = os.open("CONOUT$", os.O_RDWR | os.O_BINARY)
        fp = os.fdopen(fd, "w", encoding="utf-8")
    except Exception as e:
        fp = open(os.devnull, "w", encoding="utf-8")

删掉这几行,改为:

    # 将输出流导向实际文件
    fp = open(“null.txt”, "w", encoding="utf-8")

(原样复制,不要少了空格缩进)

更多方法: 参考

两个方法都用了,现在打开.exe没任何反应

@didme123
Copy link
Author

@hiroi-sora 两个方法都用了,现在打开.exe没任何反应

@hiroi-sora
Copy link
Owner

看看你的系统详细版本号

参考: https://jingyan.baidu.com/article/fb48e8beef28412f632e1407.html ,用dos命令的方法,复制上来或者截个图

@hiroi-sora
Copy link
Owner

hiroi-sora commented Apr 15, 2024

另外,如果你的系统是从第三方下载的,还记得在哪下的话,把下载地址也丢给我。帮你测试一下

@didme123
Copy link
Author

sss
系统装了好久了,但我检查了是最新版,昨天因为这事更新了系统,(没有重装系统) @hiroi-sora

@didme123
Copy link
Author

@hiroi-sora

@hiroi-sora
Copy link
Owner

这样的话,这问题确实不好解决。

我后续会帮你再调查一下。现在急用的话,你可以先用1.3.7版,应该不会有相同问题。

@didme123
Copy link
Author

@hiroi-sora 试过了哦,老版的软件可以打开,但用OCR识图的话CMD命令窗就显示引擎启动失败

@hiroi-sora
Copy link
Owner

hiroi-sora commented Apr 15, 2024

另外,v2版本,试试点击UmiOCR-data目录中的 run_cli.bat 或者 run_gui.bat ,看看有没有反应。

@didme123
Copy link
Author

@hiroi-sora run_cli.bat可以进,但是类似1.3.7的端,只能打开一个壳,用OCR功能一样的引擎不能启动

@hiroi-sora
Copy link
Owner

hiroi-sora commented Apr 15, 2024

了解。那大概是系统的管道通信机制坏掉了,前端无法与引擎通信。初始化时也因为无法与输出流交互而失败。

这个问题涉及系统底层,我估计很难修复的,只能重装了。

如果还想折腾一下的话, tesseractocr 插件不依赖管道通信,或许可以尝试一下。

@didme123
Copy link
Author

@hiroi-sora 好的,谢谢

@didme123
Copy link
Author

这是用的tesseractocr插件截图OCR的报错
异常状态码:202
异常信息:tesseractOcr recognize error:C:\Users\Administrator\Desktop\Umi-OCR_Paddle_v2.0.2\UmiOCR-data\plugins\win7_x64_TesseractOCR_best\engine/tesseract.exe is not installed or it's not in your PATH. See README file for more information.
@hiroi-sora

@hiroi-sora
Copy link
Owner

hiroi-sora commented Apr 15, 2024

这应该也是相同问题导致,可能它进程唤起的时候也需要管道,访问不到引擎。暂时没有办法了

@hiroi-sora hiroi-sora changed the title Win10 不存在空设备文件os.devnull,初始化运行环境失败 Win10 open(os.devnull) 报错:FileNotFoundError: [Errno 2] No such file or directory: 'nul' Apr 16, 2024
@qwedc001
Copy link
Contributor

这是用的tesseractocr插件截图OCR的报错 异常状态码:202 异常信息:tesseractOcr recognize error:C:\Users\Administrator\Desktop\Umi-OCR_Paddle_v2.0.2\UmiOCR-data\plugins\win7_x64_TesseractOCR_best\engine/tesseract.exe is not installed or it's not in your PATH. See README file for more information. @hiroi-sora

你好,请确认一下您使用的TesseractOCR插件是下载的release还是直接clone的源代码并复制。由Umi plugin库直接进入的Tesseract插件并非为最新版(我也是才知道submodule会保存对应版本号),您可以在这里尝试下载最新的release并重新运行。如果仍然无效,那就没有别的办法了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants