Python - Không tìm thấy trình xử lý nào cho trình ghi “OpenGL.error”


80

Được rồi, nó là gì và tại sao nó xảy ra trên máy chủ Win2003, nhưng không phải trên WinXP.

Nó dường như không ảnh hưởng đến ứng dụng của tôi, nhưng tôi nhận được thông báo lỗi này khi đóng ứng dụng. Và nó thật khó chịu (như các thông báo lỗi nên có).

Tôi đang sử dụng pyOpenGl và wxPython để làm nội dung đồ họa. Thật không may, tôi là một lập trình viên C # đã tiếp quản ứng dụng Python này và tôi phải học Python để làm điều đó.

Tôi có thể cung cấp mã và số phiên bản, v.v., nhưng tôi vẫn đang tìm hiểu các nội dung kỹ thuật, vì vậy mọi sự trợ giúp sẽ được đánh giá cao.

Python 2.5, wxPython và pyOpenGL


1
Tôi nghĩ rằng "không thể tìm thấy trình xử lý" là một vấn đề kinh điển xảy ra cho không chỉ thư viện OpenGL của Python mà còn nhiều thư viện python. Ngay bây giờ, mặc dù khi tôi google "python không thể tìm thấy trình xử lý nào cho trình ghi nhật ký", tôi thấy câu hỏi này có vẻ là câu hỏi gần nhất với một câu hỏi / giải pháp chuẩn.
Trevor Boyd Smith

Trong trường hợp ai đó đến đây tìm kiếm stackoverflow
này.com

Câu trả lời:


197

Có vẻ như OpenGL đang cố gắng thông báo một số lỗi trên Win2003, tuy nhiên bạn chưa định cấu hình hệ thống của mình ở đâu để xuất thông tin ghi nhật ký.

Bạn có thể thêm phần sau vào đầu chương trình của mình và bạn sẽ thấy chi tiết về lỗi trong stderr.

import logging
logging.basicConfig()

Kiểm tra tài liệu về mô-đun ghi nhật ký để có thêm thông tin cấu hình, về mặt khái niệm, nó tương tự như log4J.


1
Điều này thực sự hữu ích. Tôi có thể lấy văn bản lỗi ra khỏi ứng dụng của mình, không phải để theo dõi các vấn đề.
Paige Watson

3

Cách thích hợp để loại bỏ thông báo này là định cấu hình NullHandler cho trình ghi cấp độ gốc của thư viện của bạn (OpenGL).


4
Tôi cho rằng bạn đã bị bỏ phiếu thấp vì bỏ qua thông báo nhật ký với NullHandler hiếm khi là điều đúng đắn để làm. Thông báo được báo cáo thường là một dấu hiệu cho thấy trình ghi nhật ký không được định cấu hình tại một thời điểm mà lẽ ra nó đã được định cấu hình và bạn cũng đang bỏ qua một vấn đề tiềm ẩn với thành phần đang cố gắng ghi lại điều gì đó. Trong một số trường hợp, sử dụng NullHandler có thể là điều nên làm, nhưng hiếm khi IMO.
Moises Silva

@MoisesSilva cho một thư viện NullHandler là phải. Nó không tắt logging - nó chỉ cho phép hạt mịn kiểm soát nó suy nghĩreset.css
techtonik Anatoly

Bạn đúng rồi. Tuy nhiên, trong ngữ cảnh của câu hỏi này, op có ứng dụng của riêng mình đang sử dụng OpenGL, vì vậy tốt nhất là cấu hình trình ghi nhật ký để in lỗi mà OpenGL đang cố gắng báo cáo. Điều đó dẫn anh ta đến việc khắc phục nguyên nhân gốc rễ của vấn đề.
Moises Silva

1
Liên kết cung cấp một số bài đọc thú vị (bài đăng trên blog với các báo cáo lỗi Python chính thức được liên kết) thể hiện các vấn đề phổ biến mà mọi người gặp phải với loggingmô-đun Python .
Trevor Boyd Smith

2

Sau khi thêm Ghi nhật ký ở trên, tôi có thể thấy rằng sự cố là do thiếu lớp TConstants mà tôi đã loại trừ trong tệp py2exe setup.py.

Sau khi loại bỏ "Tconstants" khỏi danh sách bị loại trừ, tôi không còn gặp sự cố nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.