This commit is contained in:
2026-03-03 14:10:16 +08:00
parent b47962e5c8
commit fb2d4ffc00
17 changed files with 6 additions and 171188 deletions

6
.gitignore vendored
View File

@@ -11,3 +11,9 @@
*.app
.snapshots/*
# PyInstaller 打包输出
dist/
build/
*.spec
remo_disp.log

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,373 +0,0 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean these modules are required for running your program. Both
Python's standard library and 3rd-party Python packages often conditionally
import optional modules, some of which may be available only on certain
platforms.
Types of import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
tracking down the missing module yourself. Thanks!
missing module named 'org.python' - imported by copy (optional), xml.sax (delayed, conditional)
missing module named org - imported by pickle (optional)
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
missing module named pep517 - imported by importlib.metadata (delayed)
missing module named urllib.quote - imported by urllib (delayed), py._path.svnwc (delayed)
missing module named urllib.unquote_plus - imported by urllib (optional), lxml.html.clean (optional)
missing module named urllib.urlencode - imported by urllib (delayed, optional), lxml.html (delayed, optional)
missing module named urllib.FancyURLopener - imported by urllib (conditional, optional), pygments.lexers._sourcemod_builtins (conditional, optional)
missing module named urllib.urlretrieve - imported by urllib (conditional, optional), pygments.lexers._php_builtins (conditional, optional)
missing module named urllib.urlopen - imported by urllib (conditional, optional), pygments.lexers._lua_builtins (conditional, optional), pygments.lexers._postgres_builtins (conditional, optional), lxml.html (delayed, optional)
missing module named urllib.quote_plus - imported by urllib (conditional), docutils.utils.math.math2html (conditional)
missing module named urllib.url2pathname - imported by urllib (conditional), docutils.parsers.rst.directives.images (conditional), docutils.writers._html_base (conditional), docutils.writers.latex2e (conditional)
missing module named pwd - imported by posixpath (delayed, conditional), shutil (delayed, optional), tarfile (optional), pathlib (delayed, optional), subprocess (delayed, conditional, optional), distutils.util (delayed, conditional, optional), distutils.archive_util (optional), netrc (delayed, conditional), getpass (delayed), http.server (delayed, optional), webbrowser (delayed), psutil (optional), docutils.frontend (delayed, conditional, optional), setuptools._distutils.util (delayed, conditional, optional), setuptools._distutils.archive_util (optional), py._path.local (delayed), twisted.python.util (optional)
missing module named grp - imported by shutil (delayed, optional), tarfile (optional), pathlib (delayed, optional), subprocess (delayed, conditional, optional), distutils.archive_util (optional), setuptools._distutils.archive_util (optional), py._path.local (delayed), twisted.python.util (optional)
missing module named posix - imported by shutil (conditional), importlib._bootstrap_external (conditional), os (conditional, optional)
missing module named resource - imported by posix (top-level), ptyprocess.ptyprocess (top-level), IPython.utils.timing (optional), twisted.internet.process (delayed, optional)
missing module named pyimod02_importers - imported by C:\Users\16241\AppData\Roaming\Python\Python310\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (delayed), C:\Users\16241\AppData\Roaming\Python\Python310\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py (delayed)
missing module named _posixsubprocess - imported by subprocess (optional), multiprocessing.util (delayed)
missing module named fcntl - imported by subprocess (optional), zmq.eventloop.minitornado.platform.posix (top-level), paramiko.agent (delayed), pty (delayed, optional), ptyprocess.ptyprocess (top-level), psutil._compat (delayed, optional), xmlrpc.server (optional), sphinx.util.console (delayed, optional), atomicwrites (optional), twisted.python.compat (delayed, optional), twisted.internet.fdesc (optional), twisted.internet.process (optional)
missing module named _manylinux - imported by packaging._manylinux (delayed, optional), setuptools._vendor.packaging._manylinux (delayed, optional), pkg_resources._vendor.packaging._manylinux (delayed, optional)
missing module named jinja2.contextfunction - imported by jinja2 (optional), sphinx.jinja2glue (optional)
missing module named jinja2.environmentfilter - imported by jinja2 (optional), sphinx.util.rst (optional)
missing module named _posixshmem - imported by multiprocessing.resource_tracker (conditional), multiprocessing.shared_memory (conditional)
missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level), loguru._logger (top-level)
missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level)
missing module named termios - imported by getpass (optional), tty (top-level), ptyprocess.ptyprocess (top-level), psutil._compat (delayed, optional), IPython.core.page (delayed, optional), prompt_toolkit.input.vt100 (top-level), sphinx.util.console (delayed, optional), click._termui_impl (conditional), werkzeug._reloader (delayed, optional), twisted.internet.process (optional)
missing module named _scproxy - imported by urllib.request (conditional)
missing module named 'java.lang' - imported by platform (delayed, optional), xml.sax._exceptions (conditional)
missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
missing module named multiprocessing.freeze_support - imported by multiprocessing (top-level), black (top-level)
missing module named multiprocessing.Manager - imported by multiprocessing (top-level), black (top-level)
missing module named multiprocessing.Process - imported by multiprocessing (top-level), jupyter_client.ssh.tunnel (top-level)
missing module named multiprocessing.current_process - imported by multiprocessing (top-level), loguru._logger (top-level)
missing module named asyncio.DefaultEventLoopPolicy - imported by asyncio (delayed, conditional), asyncio.events (delayed, conditional)
missing module named railroad - imported by pyparsing.diagram (top-level), pkg_resources._vendor.pyparsing.diagram (top-level), setuptools._vendor.pyparsing.diagram (top-level)
missing module named readline - imported by site (delayed, optional), rlcompleter (optional), cmd (delayed, conditional, optional), code (delayed, conditional, optional), pdb (delayed, optional), pstats (conditional, optional), dill.source (delayed, conditional, optional), flask.cli (delayed, conditional, optional), sphinx.cmd.quickstart (optional)
missing module named 'pkg_resources.extern.pyparsing' - imported by pkg_resources._vendor.packaging.markers (top-level), pkg_resources._vendor.packaging.requirements (top-level)
missing module named 'pkg_resources.extern.importlib_resources' - imported by pkg_resources._vendor.jaraco.text (optional)
missing module named 'typing.io' - imported by importlib.resources (top-level)
missing module named 'pkg_resources.extern.more_itertools' - imported by pkg_resources._vendor.jaraco.functools (top-level)
missing module named 'com.sun' - imported by pkg_resources._vendor.appdirs (delayed, conditional, optional)
missing module named com - imported by pkg_resources._vendor.appdirs (delayed)
missing module named _winreg - imported by platform (delayed, optional), pkg_resources._vendor.appdirs (delayed, conditional), pygments.formatters.img (optional)
missing module named pkg_resources.extern.packaging - imported by pkg_resources.extern (top-level), pkg_resources (top-level)
missing module named pkg_resources.extern.appdirs - imported by pkg_resources.extern (top-level), pkg_resources (top-level)
missing module named 'pkg_resources.extern.jaraco' - imported by pkg_resources (top-level), pkg_resources._vendor.jaraco.text (top-level)
missing module named vms_lib - imported by platform (delayed, optional)
missing module named java - imported by platform (delayed)
missing module named 'distutils._log' - imported by setuptools._distutils.command.bdist_dumb (top-level), setuptools._distutils.command.bdist_rpm (top-level), setuptools._distutils.command.build_clib (top-level), setuptools._distutils.command.build_ext (top-level), setuptools._distutils.command.build_py (top-level), setuptools._distutils.command.build_scripts (top-level), setuptools._distutils.command.clean (top-level), setuptools._distutils.command.config (top-level), setuptools._distutils.command.install (top-level), setuptools._distutils.command.install_scripts (top-level), setuptools._distutils.command.register (top-level), setuptools._distutils.command.sdist (top-level)
missing module named usercustomize - imported by site (delayed, optional)
missing module named sitecustomize - imported by site (delayed, optional)
missing module named 'setuptools.extern.pyparsing' - imported by setuptools._vendor.packaging.requirements (top-level), setuptools._vendor.packaging.markers (top-level)
missing module named collections.Sequence - imported by collections (optional), jsonpointer (optional), setuptools._vendor.ordered_set (optional)
missing module named collections.MutableSet - imported by collections (optional), setuptools._vendor.ordered_set (optional), lxml.html (optional), lxml.html._setmixin (optional)
missing module named 'setuptools.extern.jaraco' - imported by setuptools._reqs (top-level), setuptools._entry_points (top-level), setuptools.command.egg_info (top-level), setuptools._vendor.jaraco.text (top-level)
missing module named setuptools.extern.importlib_resources - imported by setuptools.extern (conditional), setuptools._importlib (conditional), setuptools._vendor.jaraco.text (optional)
missing module named setuptools.extern.tomli - imported by setuptools.extern (delayed), setuptools.config.pyprojecttoml (delayed)
missing module named setuptools.extern.importlib_metadata - imported by setuptools.extern (conditional), setuptools._importlib (conditional)
missing module named setuptools.extern.ordered_set - imported by setuptools.extern (top-level), setuptools.dist (top-level)
missing module named setuptools.extern.packaging - imported by setuptools.extern (top-level), setuptools.dist (top-level), setuptools.command.egg_info (top-level), setuptools.depends (top-level)
missing module named 'setuptools.extern.more_itertools' - imported by setuptools.dist (top-level), setuptools.config.expand (delayed), setuptools._itertools (top-level), setuptools._entry_points (top-level), setuptools.msvc (top-level), setuptools._vendor.jaraco.functools (top-level)
missing module named 'setuptools.extern.packaging.version' - imported by setuptools.config.setupcfg (top-level), setuptools.msvc (top-level)
missing module named 'setuptools.extern.packaging.utils' - imported by setuptools.wheel (top-level)
missing module named 'setuptools.extern.packaging.tags' - imported by setuptools.wheel (top-level)
missing module named trove_classifiers - imported by setuptools.config._validate_pyproject.formats (optional)
missing module named 'setuptools.extern.packaging.specifiers' - imported by setuptools.config.setupcfg (top-level), setuptools.config._apply_pyprojecttoml (delayed)
missing module named 'setuptools.extern.packaging.requirements' - imported by setuptools.config.setupcfg (top-level)
missing module named '_typeshed.wsgi' - imported by werkzeug._internal (conditional), werkzeug.exceptions (conditional), werkzeug.http (conditional), werkzeug.wsgi (conditional), werkzeug.utils (conditional), werkzeug.wrappers.response (conditional), werkzeug.test (conditional), werkzeug.formparser (conditional), werkzeug.wrappers.request (conditional), werkzeug.serving (conditional), werkzeug.debug (conditional), werkzeug.middleware.shared_data (conditional), werkzeug.local (conditional), werkzeug.routing.exceptions (conditional), werkzeug.routing.map (conditional), flask.typing (conditional)
missing module named _watchdog_fsevents - imported by watchdog.observers.fsevents (top-level)
missing module named StringIO - imported by six (conditional), urllib3.packages.six (conditional), docutils.writers.docutils_xml (conditional), docutils.writers.odf_odt (conditional)
missing module named cryptography.x509.UnsupportedExtension - imported by cryptography.x509 (optional), urllib3.contrib.pyopenssl (optional)
missing module named _curses - imported by curses (top-level), curses.has_key (top-level)
missing module named aiohttp - imported by engineio.async_client (optional)
missing module named wsaccel - imported by websocket._utils (optional)
missing module named 'backports.ssl_match_hostname' - imported by websocket._ssl_compat (conditional, optional)
missing module named collections.Callable - imported by collections (optional), cffi.api (optional), socks (optional), bs4.element (optional), bs4.builder._lxml (optional)
missing module named 'six.moves.urllib.parse' - imported by websocket._url (top-level)
missing module named httplib - imported by websocket._handshake (conditional)
missing module named Cookie - imported by websocket._cookiejar (optional)
missing module named 'wsaccel.xormask' - imported by websocket._abnf (conditional, optional)
missing module named dummy_threading - imported by psutil._compat (optional), requests.cookies (optional)
missing module named _dummy_thread - imported by cffi.lock (conditional, optional), numpy.core.arrayprint (optional)
missing module named numpy.core.result_type - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.float_ - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.number - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.object_ - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (delayed)
missing module named numpy.core.all - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (delayed)
missing module named numpy.core.bool_ - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.inf - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.array2string - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.signbit - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.isscalar - imported by numpy.core (delayed), numpy.testing._private.utils (delayed), numpy.lib.polynomial (top-level)
missing module named numpy.core.isinf - imported by numpy.core (delayed), numpy.testing._private.utils (delayed)
missing module named numpy.core.errstate - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (delayed)
missing module named numpy.core.isfinite - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (delayed)
missing module named numpy.core.isnan - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (delayed)
missing module named numpy.core.array - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.isnat - imported by numpy.core (top-level), numpy.testing._private.utils (top-level)
missing module named numpy.core.ndarray - imported by numpy.core (top-level), numpy.testing._private.utils (top-level), numpy.lib.utils (top-level)
missing module named numpy.core.array_repr - imported by numpy.core (top-level), numpy.testing._private.utils (top-level)
missing module named numpy.core.arange - imported by numpy.core (top-level), numpy.testing._private.utils (top-level), numpy.fft.helper (top-level)
missing module named numpy.core.empty - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (top-level), numpy.fft.helper (top-level)
missing module named numpy.core.float32 - imported by numpy.core (top-level), numpy.testing._private.utils (top-level)
missing module named numpy.core.intp - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.testing._private.utils (top-level)
missing module named numpy.core.linspace - imported by numpy.core (top-level), numpy.lib.index_tricks (top-level)
missing module named numpy.core.iinfo - imported by numpy.core (top-level), numpy.lib.twodim_base (top-level)
missing module named numpy.core.transpose - imported by numpy.core (top-level), numpy.lib.function_base (top-level)
missing module named numpy._typing._ufunc - imported by numpy._typing (conditional)
missing module named numpy.uint - imported by numpy (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.core.asarray - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.lib.utils (top-level), numpy.fft._pocketfft (top-level), numpy.fft.helper (top-level)
missing module named numpy.core.integer - imported by numpy.core (top-level), numpy.fft.helper (top-level)
missing module named numpy.core.sqrt - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.fft._pocketfft (top-level)
missing module named numpy.core.conjugate - imported by numpy.core (top-level), numpy.fft._pocketfft (top-level)
missing module named numpy.core.swapaxes - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.fft._pocketfft (top-level)
missing module named numpy.core.zeros - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.fft._pocketfft (top-level)
missing module named numpy.core.reciprocal - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.sort - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.argsort - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.sign - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.count_nonzero - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.divide - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.matmul - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.asanyarray - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.atleast_2d - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.product - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.amax - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.amin - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.moveaxis - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.geterrobj - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.finfo - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.sum - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.fastCopyAndTranspose - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.multiply - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.add - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.dot - imported by numpy.core (top-level), numpy.linalg.linalg (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.Inf - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.newaxis - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.complexfloating - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.inexact - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.cdouble - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.csingle - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.double - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.single - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.intc - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.empty_like - imported by numpy.core (top-level), numpy.linalg.linalg (top-level)
missing module named numpy.core.ufunc - imported by numpy.core (top-level), numpy.lib.utils (top-level)
missing module named numpy.core.ones - imported by numpy.core (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.hstack - imported by numpy.core (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.atleast_1d - imported by numpy.core (top-level), numpy.lib.polynomial (top-level)
missing module named numpy.core.atleast_3d - imported by numpy.core (top-level), numpy.lib.shape_base (top-level)
missing module named numpy.core.vstack - imported by numpy.core (top-level), numpy.lib.shape_base (top-level)
missing module named pickle5 - imported by numpy.compat.py3k (optional), cloudpickle.compat (conditional, optional)
missing module named numpy.eye - imported by numpy (delayed), numpy.core.numeric (delayed)
missing module named numpy.recarray - imported by numpy (top-level), numpy.ma.mrecords (top-level)
missing module named numpy.expand_dims - imported by numpy (top-level), numpy.ma.core (top-level)
missing module named numpy.array - imported by numpy (top-level), numpy.ma.core (top-level), numpy.ma.extras (top-level), numpy.ma.mrecords (top-level), dill._objects (optional)
missing module named numpy.iscomplexobj - imported by numpy (top-level), numpy.ma.core (top-level)
missing module named numpy.amin - imported by numpy (top-level), numpy.ma.core (top-level)
missing module named numpy.amax - imported by numpy (top-level), numpy.ma.core (top-level)
missing module named numpy.float64 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.float32 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.uint64 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random.bit_generator (top-level), numpy.random._philox (top-level), numpy.random._sfc64 (top-level), numpy.random._generator (top-level)
missing module named numpy.uint32 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random.bit_generator (top-level), numpy.random._generator (top-level), numpy.random._mt19937 (top-level)
missing module named numpy.uint16 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.uint8 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.int64 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.int32 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level), dill._objects (optional)
missing module named numpy.int16 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.int8 - imported by numpy (top-level), numpy.array_api._typing (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.bytes_ - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.str_ - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.void - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.object_ - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.datetime64 - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.timedelta64 - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.number - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.complexfloating - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.floating - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.integer - imported by numpy (top-level), numpy._typing._array_like (top-level), numpy.ctypeslib (top-level)
missing module named numpy.unsignedinteger - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.bool_ - imported by numpy (top-level), numpy._typing._array_like (top-level), numpy.ma.core (top-level), numpy.ma.mrecords (top-level), numpy.random.mtrand (top-level), numpy.random._generator (top-level)
missing module named numpy.generic - imported by numpy (top-level), numpy._typing._array_like (top-level)
missing module named numpy.dtype - imported by numpy (top-level), numpy._typing._array_like (top-level), numpy.array_api._typing (top-level), numpy.ma.mrecords (top-level), numpy.random.mtrand (top-level), numpy.random.bit_generator (top-level), numpy.random._philox (top-level), numpy.random._sfc64 (top-level), numpy.random._generator (top-level), numpy.random._mt19937 (top-level), numpy.ctypeslib (top-level), dill._dill (delayed)
missing module named numpy.ndarray - imported by numpy (top-level), numpy._typing._array_like (top-level), numpy.ma.core (top-level), numpy.ma.extras (top-level), numpy.ma.mrecords (top-level), numpy.random.mtrand (top-level), numpy.random.bit_generator (top-level), numpy.random._philox (top-level), numpy.random._sfc64 (top-level), numpy.random._generator (top-level), numpy.random._mt19937 (top-level), numpy.ctypeslib (top-level), IPython.core.magics.namespace (delayed, conditional, optional), dill._dill (delayed), _pytest.python_api (conditional)
missing module named numpy.ufunc - imported by numpy (top-level), numpy._typing (top-level), dill._dill (delayed), dill._objects (optional)
missing module named numpy.histogramdd - imported by numpy (delayed), numpy.lib.twodim_base (delayed)
missing module named simplejson - imported by requests.compat (conditional, optional)
runtime module named urllib3.packages.six.moves - imported by http.client (top-level), urllib3.util.response (top-level), urllib3.connectionpool (top-level), urllib3.packages.six.moves.urllib (top-level), urllib3.util.queue (top-level)
missing module named brotlicffi - imported by urllib3.util.request (optional), urllib3.response (optional)
missing module named Queue - imported by urllib3.util.queue (conditional), debugpy.common.compat (conditional)
missing module named 'urllib3.packages.six.moves.urllib.parse' - imported by urllib3.request (top-level), urllib3.poolmanager (top-level)
missing module named collections.MutableMapping - imported by collections (conditional), paramiko.hostkeys (conditional), urllib3._collections (optional), lxml.html (optional)
missing module named collections.Mapping - imported by collections (optional), parso.python.tree (optional), pytz.lazy (optional), jsonpointer (optional), urllib3._collections (optional)
missing module named unicodedata2 - imported by charset_normalizer.utils (optional)
missing module named urllib3_secure_extra - imported by urllib3 (optional)
missing module named olefile - imported by PIL.FpxImagePlugin (top-level), PIL.MicImagePlugin (top-level)
missing module named PIL._imagingcms - imported by PIL (optional), PIL.ImageCms (optional)
missing module named dummy_thread - imported by cffi.lock (conditional, optional)
missing module named thread - imported by cffi.lock (conditional, optional), cffi.cparser (conditional, optional), zmq.eventloop.minitornado.ioloop (optional), paramiko.win_pageant (optional)
missing module named cStringIO - imported by cffi.ffiplatform (optional), paramiko.py3compat (conditional), yapf.yapflib.py3compat (conditional)
missing module named cPickle - imported by pycparser.ply.yacc (delayed, optional), pickleshare (optional)
missing module named cffi._pycparser - imported by cffi (optional), cffi.cparser (optional)
missing module named xmlrpclib - imported by defusedxml.xmlrpc (conditional)
missing module named PIL._imagingagg - imported by PIL (delayed, conditional, optional), PIL.ImageDraw (delayed, conditional, optional)
missing module named geventwebsocket - imported by flask_socketio (delayed, conditional, optional)
missing module named gevent - imported by socketio.kombu_manager (delayed, conditional), flask_socketio (delayed, conditional), zmq.green.core (top-level), zmq.green.poll (top-level)
missing module named 'eventlet.green' - imported by socketio.zmq_manager (delayed, optional), flask_socketio (delayed, conditional)
missing module named 'eventlet.wsgi' - imported by flask_socketio (delayed, conditional)
missing module named eventlet - imported by socketio.kombu_manager (delayed, conditional), flask_socketio (delayed, conditional)
missing module named asgiref - imported by flask.app (delayed, optional)
missing module named dotenv - imported by flask.cli (delayed, optional)
missing module named socketio.socketio_manage - imported by socketio (optional), flask_socketio (optional)
missing module named aio_pika - imported by socketio.async_aiopika_manager (optional)
missing module named 'valkey.exceptions' - imported by socketio.redis_manager (optional), socketio.async_redis_manager (optional)
missing module named valkey - imported by socketio.redis_manager (optional), socketio.async_redis_manager (optional)
missing module named 'aioredis.exceptions' - imported by socketio.async_redis_manager (optional)
missing module named aioredis - imported by socketio.async_redis_manager (optional)
missing module named 'redis.exceptions' - imported by socketio.redis_manager (optional), socketio.async_redis_manager (optional)
missing module named redis - imported by socketio.redis_manager (optional), socketio.async_redis_manager (optional)
missing module named kafka - imported by socketio.kafka_manager (optional)
missing module named 'gevent.monkey' - imported by socketio.redis_manager (delayed, conditional)
missing module named 'eventlet.patcher' - imported by socketio.redis_manager (delayed, conditional)
missing module named kombu - imported by socketio.kombu_manager (optional)
missing module named '__pypy__.builders' - imported by msgpack.fallback (conditional, optional)
missing module named __pypy__ - imported by msgpack.fallback (conditional)
missing module named aiocontextvars - imported by loguru._contextvars (delayed, conditional)
missing module named exceptiongroup - imported by loguru._better_exceptions (conditional, optional)
missing module named trio - imported by IPython.core.async_helpers (delayed), ipykernel.trio_runner (top-level)
missing module named _typeshed - imported by prompt_toolkit.eventloop.inputhook (conditional)
missing module named ConfigParser - imported by docutils.frontend (conditional), yapf.yapflib.py3compat (conditional), docutils.writers.odf_odt (conditional)
missing module named __builtin__ - imported by paramiko.py3compat (conditional), ptyprocess.ptyprocess (optional), yapf.yapflib.py3compat (conditional), debugpy.common.compat (conditional)
missing module named 'blib2to3.driver' - imported by blib2to3.pgen2.parse (conditional)
missing module named pgen2 - imported by blib2to3.pgen2.conv (top-level)
missing module named jnius - imported by platformdirs.android (delayed, optional)
missing module named tokenize_rt - imported by black.handle_ipynb_magics (delayed, optional)
missing module named typed_ast - imported by sphinx.pycode.ast (conditional, optional), black.parsing (optional)
missing module named tomllib - imported by black.files (conditional, optional)
missing module named uvloop - imported by black.concurrency (delayed, optional)
missing module named prompt_toolkit.filters.vi_mode - imported by prompt_toolkit.filters (top-level), prompt_toolkit.document (top-level), prompt_toolkit.key_binding.bindings.page_navigation (top-level), prompt_toolkit.widgets.toolbars (top-level), IPython.terminal.shortcuts (top-level)
missing module named 'prompt_toolkit.key_binding.key_bindings.vi' - imported by prompt_toolkit.key_binding.vi_state (conditional)
missing module named prompt_toolkit.filters.is_done - imported by prompt_toolkit.filters (top-level), prompt_toolkit.layout.menus (top-level), prompt_toolkit.widgets.base (top-level), prompt_toolkit.shortcuts.progress_bar.base (top-level), prompt_toolkit.shortcuts.prompt (top-level)
missing module named prompt_toolkit.filters.has_completions - imported by prompt_toolkit.filters (top-level), prompt_toolkit.layout.menus (top-level), prompt_toolkit.widgets.toolbars (top-level), prompt_toolkit.widgets.dialogs (top-level), IPython.terminal.shortcuts (top-level)
missing module named prompt_toolkit.filters.vi_insert_mode - imported by prompt_toolkit.filters (top-level), prompt_toolkit.layout.containers (top-level), prompt_toolkit.key_binding.bindings.basic (top-level), IPython.terminal.shortcuts (top-level)
missing module named prompt_toolkit.filters.emacs_insert_mode - imported by prompt_toolkit.filters (top-level), prompt_toolkit.layout.containers (top-level), prompt_toolkit.key_binding.bindings.basic (top-level), prompt_toolkit.key_binding.bindings.emacs (top-level), IPython.terminal.shortcuts (top-level)
missing module named prompt_toolkit.filters.is_searching - imported by prompt_toolkit.filters (top-level), prompt_toolkit.search (top-level), prompt_toolkit.key_binding.bindings.search (top-level), prompt_toolkit.key_binding.bindings.vi (top-level)
missing module named ctags - imported by pygments.formatters.html (optional)
missing module named pygments.formatters.LatexFormatter - imported by pygments.formatters (delayed), IPython.lib.display (delayed), sphinx.highlighting (top-level)
missing module named pygments.formatters.HtmlFormatter - imported by pygments.formatters (delayed), IPython.lib.display (delayed), IPython.core.oinspect (top-level), stack_data.core (delayed), sphinx.highlighting (top-level)
missing module named pygments.lexers.TextLexer - imported by pygments.lexers (top-level), sphinx.highlighting (top-level)
missing module named pygments.lexers.RstLexer - imported by pygments.lexers (top-level), sphinx.highlighting (top-level)
missing module named pygments.lexers.PythonConsoleLexer - imported by pygments.lexers (top-level), sphinx.highlighting (top-level), sphinx.transforms.post_transforms.code (top-level)
missing module named pygments.lexers.Python3Lexer - imported by pygments.lexers (top-level), sphinx.highlighting (top-level)
missing module named pygments.lexers.CLexer - imported by pygments.lexers (top-level), sphinx.highlighting (top-level)
missing module named pygments.lexers.PythonLexer - imported by pygments.lexers (top-level), IPython.core.oinspect (top-level), sphinx.highlighting (top-level)
missing module named 'sphinx.domain' - imported by sphinx.transforms (conditional), sphinx.util.nodes (conditional)
missing module named sets - imported by pytz.tzinfo (optional)
missing module named UserDict - imported by pytz.lazy (optional)
missing module named sphinx_rtd_theme - imported by sphinx.theming (delayed, optional)
missing module named Stemmer - imported by sphinx.util.stemmer (optional), snowballstemmer (optional)
missing module named Levenshtein - imported by sphinx.versioning (optional)
missing module named urllib2 - imported by docutils.parsers.rst.directives.misc (delayed, conditional), docutils.writers.odf_odt (conditional), docutils.parsers.rst.directives.tables (delayed, conditional), lxml.ElementInclude (optional), lxml.html.html5parser (optional)
missing module named Image - imported by docutils.parsers.rst.directives.images (optional)
missing module named roman - imported by docutils.writers.latex2e (optional), docutils.writers.manpage (optional), sphinx.writers.latex (optional)
missing module named 'requests.packages.urllib3' - imported by sphinx.util.requests (optional)
missing module named htmlentitydefs - imported by lxml.html.soupparser (optional)
missing module named BeautifulSoup - imported by lxml.html.soupparser (optional)
missing module named cchardet - imported by bs4.dammit (optional)
missing module named 'html5lib.treebuilders' - imported by bs4.builder._html5lib (optional), lxml.html._html5builder (top-level), lxml.html.html5parser (top-level)
missing module named 'html5lib.constants' - imported by bs4.builder._html5lib (top-level)
missing module named html5lib - imported by bs4.builder._html5lib (top-level), lxml.html.html5parser (top-level)
missing module named urlparse - imported by lxml.ElementInclude (optional), lxml.html (optional), lxml.html.clean (optional), lxml.html.html5parser (optional)
missing module named subunit - imported by twisted.trial.reporter (optional)
missing module named '_pytest.code' - imported by _pytest.hookspec (conditional)
missing module named py.process - imported by py (top-level), py._path.svnurl (top-level)
missing module named py.path - imported by py (top-level), py._path.svnurl (top-level)
missing module named apipkg - imported by py (optional)
missing module named 'importlib.resources.readers' - imported by _pytest.assertion.rewrite (delayed, conditional)
missing module named argcomplete - imported by _pytest._argcomplete (conditional, optional)
missing module named jieba - imported by sphinx.search.zh (optional)
missing module named janome - imported by sphinx.search.ja (optional)
missing module named MeCab - imported by sphinx.search.ja (optional)
missing module named traitlets.config.Application - imported by traitlets.config (delayed, conditional), traitlets.log (delayed, conditional), ipykernel.kernelspec (top-level)
missing module named importlib_resources - imported by matplotlib.style.core (conditional), jsonschema._utils (conditional)
missing module named matplotlib.axes.Axes - imported by matplotlib.axes (delayed), matplotlib.legend (delayed), matplotlib.projections.geo (top-level), matplotlib.projections.polar (top-level), mpl_toolkits.mplot3d.axes3d (top-level), matplotlib.figure (top-level), matplotlib.pyplot (top-level)
missing module named six.moves.range - imported by six.moves (top-level), dateutil.rrule (top-level)
runtime module named six.moves - imported by dateutil.tz.tz (top-level), dateutil.tz._factories (top-level), dateutil.tz.win (top-level), dateutil.rrule (top-level), asttokens.asttokens (top-level), six.moves.urllib (top-level)
missing module named six.moves.xrange - imported by six.moves (top-level), asttokens.asttokens (top-level)
missing module named dateutil.tz.tzfile - imported by dateutil.tz (top-level), dateutil.zoneinfo (top-level)
missing module named gi - imported by matplotlib.cbook (delayed, conditional), ipykernel.gui.gtk3embed (top-level)
missing module named shiboken2 - imported by matplotlib.backends.qt_compat (delayed, conditional, optional)
missing module named sip - imported by IPython.external.qt_loaders (delayed, optional), matplotlib.backends.qt_compat (delayed, conditional), PyQt5 (top-level)
missing module named shiboken6 - imported by matplotlib.backends.qt_compat (delayed, conditional)
missing module named setuptools_scm - imported by matplotlib (delayed, conditional)
missing module named prompt_toolkit.filters.vi_insert_multiple_mode - imported by prompt_toolkit.filters (top-level), prompt_toolkit.layout.processors (top-level)
missing module named System - imported by IPython.utils._process_cli (top-level)
missing module named clr - imported by IPython.utils._process_cli (top-level)
missing module named curio - imported by IPython.core.async_helpers (delayed)
missing module named 'gi.repository' - imported by ipykernel.gui.gtk3embed (top-level)
missing module named gtk - imported by ipykernel.gui.gtkembed (top-level)
missing module named gobject - imported by ipykernel.gui.gtkembed (top-level)
missing module named wx - imported by IPython.lib.guisupport (delayed), ipykernel.eventloops (delayed)
missing module named PySide2 - imported by ipykernel.eventloops (delayed, conditional, optional)
missing module named ipyparallel - imported by ipykernel.zmqshell (delayed, conditional)
missing module named ipykernel.get_connection_info - imported by ipykernel (top-level), ipykernel.zmqshell (top-level)
missing module named ipykernel.get_connection_file - imported by ipykernel (top-level), ipykernel.zmqshell (top-level)
missing module named ipykernel.connect_qtconsole - imported by ipykernel (top-level), ipykernel.zmqshell (top-level)
missing module named isoduration - imported by jsonschema._format (top-level)
missing module named uri_template - imported by jsonschema._format (top-level)
missing module named webcolors - imported by jsonschema._format (top-level)
missing module named rfc3339_validator - imported by jsonschema._format (top-level)
missing module named rfc3986_validator - imported by jsonschema._format (optional)
missing module named rfc3987 - imported by jsonschema._format (optional)
missing module named fqdn - imported by jsonschema._format (top-level)
missing module named _subprocess - imported by jupyter_client.launcher (delayed, conditional, optional), ipykernel.parentpoller (delayed, optional)
missing module named _dbm - imported by dbm.ndbm (top-level)
missing module named _gdbm - imported by dbm.gnu (top-level)
missing module named diff - imported by dill._dill (delayed, conditional, optional)
missing module named dill.diff - imported by dill (delayed, conditional, optional), dill._dill (delayed, conditional, optional)
missing module named version - imported by dill (optional)
missing module named 'ipyparallel.serialize' - imported by ipykernel.ipkernel (delayed, optional), ipykernel.serialize (optional), ipykernel.pickleutil (top-level)
missing module named appnope - imported by ipykernel.ipkernel (delayed, conditional)
missing module named '_pydevd_bundle.pydevd_api' - imported by ipykernel.debugger (delayed)
missing module named '_pydevd_bundle.pydevd_suspended_frames' - imported by ipykernel.debugger (optional)
missing module named _pydevd_bundle - imported by debugpy._vendored.force_pydevd (top-level), ipykernel.debugger (optional)
missing module named pydevd_file_utils - imported by debugpy.server.api (top-level)
missing module named '_pydevd_bundle.pydevd_constants' - imported by debugpy.server.api (top-level)
missing module named pydevd - imported by debugpy._vendored.force_pydevd (top-level), debugpy.server.api (top-level)
missing module named netifaces - imported by jupyter_client.localinterfaces (delayed)
missing module named 'tornado.platform.select' - imported by zmq.eventloop.minitornado.ioloop (delayed)
missing module named 'tornado.platform.kqueue' - imported by zmq.eventloop.minitornado.ioloop (delayed, conditional)
missing module named 'tornado.platform.epoll' - imported by zmq.eventloop.minitornado.ioloop (delayed, conditional)
missing module named monotime - imported by zmq.eventloop.minitornado.platform.auto (optional)
missing module named 'tornado.stack_context' - imported by zmq.eventloop.zmqstream (optional)
missing module named zmq.ZMQError - imported by zmq (delayed, optional), zmq.sugar.attrsettr (delayed, optional), zmq.eventloop._deprecated (top-level)
missing module named invoke - imported by paramiko.config (optional)
missing module named gssapi - imported by paramiko.ssh_gss (optional)
missing module named jupyter_client.write_connection_file - imported by jupyter_client (top-level), ipykernel.kernelapp (top-level), ipykernel.connect (top-level)
missing module named 'gevent.core' - imported by zmq.green.core (delayed, optional)
missing module named 'gevent.hub' - imported by zmq.green.core (top-level)
missing module named 'gevent.event' - imported by zmq.green.core (top-level)
missing module named zmq.backend.zmq_version_info - imported by zmq.backend (top-level), zmq.sugar.version (top-level)
missing module named zmq.backend.Frame - imported by zmq.backend (top-level), zmq.sugar.frame (top-level), zmq.sugar.tracker (top-level)
missing module named zmq.backend.Socket - imported by zmq.backend (top-level), zmq.sugar.socket (top-level)
missing module named zmq.backend.zmq_poll - imported by zmq.backend (top-level), zmq.sugar.poll (top-level)
missing module named pyczmq - imported by zmq.sugar.context (delayed)
missing module named zmq.backend.Context - imported by zmq.backend (top-level), zmq.sugar.context (top-level)
missing module named zmq.backend.zmq_errno - imported by zmq.backend (delayed), zmq.error (delayed, conditional)
missing module named zmq.backend.strerror - imported by zmq.backend (delayed), zmq.error (delayed)
missing module named zmq.zmq_version_info - imported by zmq (delayed, conditional), zmq.error (delayed, conditional)
missing module named zmq.zmq_version - imported by zmq (delayed, conditional), zmq.error (delayed, conditional)
missing module named zmq.libzmq - imported by zmq (delayed, optional)
missing module named docrepr - imported by IPython.core.interactiveshell (optional)
missing module named pathlib2 - imported by pickleshare (optional)

File diff suppressed because it is too large Load Diff

140
dist/remo_disp.log vendored
View File

@@ -1,140 +0,0 @@
2026-03-03 11:21:23.189 | INFO | __main__:main:454 - 日志级别: INFO
2026-03-03 11:21:23.190 | INFO | __main__:main:455 - 远程显示服务: http://localhost:8181
2026-03-03 11:21:23.190 | INFO | __main__:main:456 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 11:21:23.917 | INFO | __main__:main:454 - 日志级别: INFO
2026-03-03 11:21:23.917 | INFO | __main__:main:455 - 远程显示服务: http://localhost:8181
2026-03-03 11:21:23.918 | INFO | __main__:main:456 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 11:21:23.934 | INFO | __main__:on_connect:366 - [on_connect] WebSocket 客户端已连接 sid=Ctr5knFEiqAgM5p4AAAB
2026-03-03 11:21:23.939 | INFO | __main__:on_disconnect_device:409 - [on_disconnect_device] 前端请求断开设备 sid=Ctr5knFEiqAgM5p4AAAB
2026-03-03 11:21:23.939 | INFO | __main__:on_disconnect_device:415 - [on_disconnect_device] 设备已断开(若为最后一个客户端)
2026-03-03 11:21:33.635 | INFO | __main__:on_disconnect:374 - [on_disconnect] WebSocket 客户端断开 sid=Ctr5knFEiqAgM5p4AAAB
2026-03-03 11:21:33.709 | INFO | __main__:on_connect:366 - [on_connect] WebSocket 客户端已连接 sid=E1OFdqsmDVZG6Zn_AAAD
2026-03-03 11:21:35.789 | INFO | __main__:on_connect_device:388 - [on_connect_device] 请求连接 DTU: 192.168.253.3:7003
2026-03-03 11:21:35.811 | INFO | __main__:connect:153 - [connect] 连接 DTU 成功: 192.168.253.3:7003
2026-03-03 11:21:35.812 | INFO | __main__:_screen_refresh_loop:305 - [_screen_refresh_loop] 刷新线程启动
2026-03-03 11:21:35.812 | INFO | __main__:on_connect_device:396 - [on_connect_device] 已启动屏幕刷新线程
2026-03-03 11:21:35.817 | INFO | __main__:on_connect_device:398 - [on_connect_device] 连接 DTU 成功,已加入订阅 sid=E1OFdqsmDVZG6Zn_AAAD
2026-03-03 11:21:44.896 | INFO | __main__:on_disconnect_device:409 - [on_disconnect_device] 前端请求断开设备 sid=E1OFdqsmDVZG6Zn_AAAD
2026-03-03 11:21:44.896 | INFO | __main__:disconnect_device:288 - [disconnect_device] 正在关闭与 DTU 的连接
2026-03-03 11:21:44.897 | INFO | __main__:on_disconnect_device:415 - [on_disconnect_device] 设备已断开(若为最后一个客户端)
2026-03-03 11:21:44.897 | ERROR | __main__:_recv:218 - [_recv] 接收异常 - [WinError 10038] 在一个非套接字上尝试了一个操作。
Traceback (most recent call last):
File "threading.py", line 973, in _bootstrap
File "threading.py", line 1016, in _bootstrap_inner
File "threading.py", line 953, in run
File "remo_disp_server.py", line 309, in _screen_refresh_loop
File "remo_disp_server.py", line 238, in fetch_screen
> File "remo_disp_server.py", line 187, in _recv
OSError: [WinError 10038] 在一个非套接字上尝试了一个操作。
2026-03-03 11:21:44.901 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 11:21:44.902 | INFO | __main__:_screen_refresh_loop:331 - [_screen_refresh_loop] 刷新线程退出
2026-03-03 11:40:43.024 | INFO | __main__:main:454 - 日志级别: INFO
2026-03-03 11:40:43.024 | INFO | __main__:main:455 - 远程显示服务: http://localhost:8181
2026-03-03 11:40:43.024 | INFO | __main__:main:456 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 11:40:43.041 | INFO | __main__:on_connect:366 - [on_connect] WebSocket 客户端已连接 sid=nzlFmUGqWK1FZE5ZAAAB
2026-03-03 11:40:55.131 | INFO | __main__:main:454 - 日志级别: INFO
2026-03-03 11:40:55.132 | INFO | __main__:main:455 - 远程显示服务: http://localhost:8181
2026-03-03 11:40:55.132 | INFO | __main__:main:456 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 11:40:55.817 | INFO | __main__:on_connect:366 - [on_connect] WebSocket 客户端已连接 sid=PNeE423Ccgzhel5wAAAB
2026-03-03 11:41:09.161 | INFO | __main__:main:454 - 日志级别: INFO
2026-03-03 11:41:09.164 | INFO | __main__:main:455 - 远程显示服务: http://localhost:8181
2026-03-03 11:41:09.165 | INFO | __main__:main:456 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 11:41:09.840 | INFO | __main__:on_connect:366 - [on_connect] WebSocket 客户端已连接 sid=41Q1HD4nG4kq43pTAAAB
2026-03-03 13:51:50.972 | INFO | __main__:on_connect_device:388 - [on_connect_device] 请求连接 DTU: 192.168.253.3:7003
2026-03-03 13:51:50.992 | INFO | __main__:connect:153 - [connect] 连接 DTU 成功: 192.168.253.3:7003
2026-03-03 13:51:50.992 | INFO | __main__:_screen_refresh_loop:305 - [_screen_refresh_loop] 刷新线程启动
2026-03-03 13:51:50.994 | INFO | __main__:on_connect_device:396 - [on_connect_device] 已启动屏幕刷新线程
2026-03-03 13:51:50.994 | INFO | __main__:on_connect_device:398 - [on_connect_device] 连接 DTU 成功,已加入订阅 sid=41Q1HD4nG4kq43pTAAAB
2026-03-03 13:51:54.806 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:51:54.806 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:51:58.564 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:51:58.565 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:00.800 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:00.800 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:02.585 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:02.585 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:03.648 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:03.648 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:04.710 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:04.710 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:07.686 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:07.686 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:08.496 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:08.499 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:09.592 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:09.592 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:09.939 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:09.940 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:11.246 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:11.247 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:12.157 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:12.157 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:12.492 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:12.492 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:12.600 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:12.601 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:14.349 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:14.349 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:14.577 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:14.577 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:14.804 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:14.804 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:15.261 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:15.261 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:15.854 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:15.855 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:16.082 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:16.082 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:16.462 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:16.462 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:16.692 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:16.692 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:16.920 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:16.920 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:17.147 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:17.151 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:17.375 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:17.376 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:17.602 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:17.602 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:20.000 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:20.001 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:20.344 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:20.345 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:20.808 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:20.808 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:21.886 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:21.887 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:21.991 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:21.991 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:22.336 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:22.337 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:52:22.724 | ERROR | __main__:parse_frame:113 - [parse_frame] 帧太短或帧头不是 TAG_DEVICE(0xBB), len=5
2026-03-03 13:52:22.725 | ERROR | __main__:fetch_screen:246 - [fetch_screen] 未收到有效 LCDMEM 回复result=None
2026-03-03 13:56:19.508 | INFO | __main__:on_disconnect_device:409 - [on_disconnect_device] 前端请求断开设备 sid=41Q1HD4nG4kq43pTAAAB
2026-03-03 13:56:19.509 | INFO | __main__:disconnect_device:288 - [disconnect_device] 正在关闭与 DTU 的连接
2026-03-03 13:56:19.509 | INFO | __main__:_screen_refresh_loop:331 - [_screen_refresh_loop] 刷新线程退出
2026-03-03 13:56:19.511 | INFO | __main__:on_disconnect_device:415 - [on_disconnect_device] 设备已断开(若为最后一个客户端)
2026-03-03 14:01:44.744 | INFO | __main__:main:460 - 日志级别: INFO
2026-03-03 14:01:44.744 | INFO | __main__:main:461 - 远程显示服务: http://localhost:8181
2026-03-03 14:01:44.745 | INFO | __main__:main:462 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 14:01:45.667 | INFO | __main__:main:460 - 日志级别: INFO
2026-03-03 14:01:45.668 | INFO | __main__:main:461 - 远程显示服务: http://localhost:8181
2026-03-03 14:01:45.668 | INFO | __main__:main:462 - 使用 WebSocket 传输,在浏览器中打开上述地址
2026-03-03 14:01:45.695 | INFO | __main__:on_connect:372 - [on_connect] WebSocket 客户端已连接 sid=aitu2nSlxwEd-tDSAAAB
2026-03-03 14:01:48.901 | INFO | __main__:on_disconnect:380 - [on_disconnect] WebSocket 客户端断开 sid=aitu2nSlxwEd-tDSAAAB
2026-03-03 14:01:49.043 | INFO | __main__:on_connect:372 - [on_connect] WebSocket 客户端已连接 sid=EwBLjRaj-HkrDyLDAAAD
2026-03-03 14:01:51.328 | INFO | __main__:on_connect_device:394 - [on_connect_device] 请求连接 DTU: 192.168.253.3:7003
2026-03-03 14:01:51.332 | INFO | __main__:connect:154 - [connect] 连接 DTU 成功: 192.168.253.3:7003
2026-03-03 14:01:51.333 | INFO | __main__:_screen_refresh_loop:311 - [_screen_refresh_loop] 刷新线程启动
2026-03-03 14:01:51.333 | INFO | __main__:on_connect_device:402 - [on_connect_device] 已启动屏幕刷新线程
2026-03-03 14:01:51.334 | INFO | __main__:on_connect_device:404 - [on_connect_device] 连接 DTU 成功,已加入订阅 sid=EwBLjRaj-HkrDyLDAAAD
2026-03-03 14:02:29.052 | INFO | __main__:on_disconnect_device:415 - [on_disconnect_device] 前端请求断开设备 sid=EwBLjRaj-HkrDyLDAAAD
2026-03-03 14:02:29.052 | INFO | __main__:disconnect_device:294 - [disconnect_device] 正在关闭与 DTU 的连接
2026-03-03 14:02:29.052 | INFO | __main__:_screen_refresh_loop:337 - [_screen_refresh_loop] 刷新线程退出
2026-03-03 14:02:29.053 | INFO | __main__:on_disconnect_device:421 - [on_disconnect_device] 设备已断开(若为最后一个客户端)
2026-03-03 14:02:35.051 | INFO | __main__:on_connect_device:394 - [on_connect_device] 请求连接 DTU: 192.168.253.3:7003
2026-03-03 14:02:35.054 | INFO | __main__:connect:154 - [connect] 连接 DTU 成功: 192.168.253.3:7003
2026-03-03 14:02:35.056 | INFO | __main__:_screen_refresh_loop:311 - [_screen_refresh_loop] 刷新线程启动
2026-03-03 14:02:35.056 | INFO | __main__:on_connect_device:402 - [on_connect_device] 已启动屏幕刷新线程
2026-03-03 14:02:35.057 | INFO | __main__:on_connect_device:404 - [on_connect_device] 连接 DTU 成功,已加入订阅 sid=EwBLjRaj-HkrDyLDAAAD

Binary file not shown.