Traceback (most recent call last): File "/home/ubuntu/hyperliquid-demo/backend/main.py", line 1, in from fastapi import FastAPI, WebSocket, WebSocketDisconnect ModuleNotFoundError: No module named 'fastapi' Traceback (most recent call last): File "/home/ubuntu/hyperliquid-demo/backend/main.py", line 1, in from fastapi import FastAPI, WebSocket, WebSocketDisconnect ModuleNotFoundError: No module named 'fastapi' Traceback (most recent call last): File "/home/ubuntu/hyperliquid-demo/backend/main.py", line 1, in from fastapi import FastAPI, WebSocket, WebSocketDisconnect ModuleNotFoundError: No module named 'fastapi' INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [200643] using WatchFiles INFO: Started server process [200645] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 124.244.39.48:38298 - "GET / HTTP/1.1" 200 OK WARNING: Invalid HTTP request received. INFO: 124.244.39.48:55281 - "WebSocket /ws" [accepted] INFO: connection open INFO: connection closed INFO: 124.244.39.48:38539 - "WebSocket /ws" [accepted] INFO: connection open WebSocket 错误: 'Info' object has no attribute 'l2_book' WebSocket 错误: 'Info' object has no attribute 'l2_book' INFO: 124.244.39.48:51411 - "OPTIONS /approve-builder HTTP/1.1" 400 Bad Request INFO: connection closed INFO: 124.244.39.48:38691 - "WebSocket /ws" [accepted] INFO: connection open WebSocket 错误: 'Info' object has no attribute 'l2_book' INFO: 124.244.39.48:52842 - "OPTIONS /approve-builder HTTP/1.1" 400 Bad Request INFO: 124.244.39.48:38770 - "GET / HTTP/1.1" 200 OK INFO: 124.244.39.48:54528 - "GET /health HTTP/1.1" 200 OK WARNING: WatchFiles detected changes in 'main.py'. Reloading... INFO: Shutting down INFO: connection closed INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [200645] INFO: Started server process [209281] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [211848] using WatchFiles INFO: Started server process [211850] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 124.244.39.48:38915 - "GET /health HTTP/1.1" 200 OK INFO: 101.32.51.95:56732 - "POST /health HTTP/1.1" 405 Method Not Allowed INFO: 101.32.51.95:57578 - "POST /approve-builder HTTP/1.1" 200 OK WARNING: WatchFiles detected changes in 'main.py'. Reloading... INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [211850] INFO: Started server process [213295] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [213688] using WatchFiles INFO: Started server process [213690] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 101.32.51.95:38392 - "POST /approve-builder HTTP/1.1" 200 OK INFO: 101.32.51.95:56412 - "POST /approve-builder HTTP/1.1" 200 OK INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [215165] using StatReload Process SpawnProcess-1: Traceback (most recent call last): File "/usr/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/usr/lib/python3.12/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3/dist-packages/uvicorn/_subprocess.py", line 78, in subprocess_started target(sockets=sockets) File "/usr/lib/python3/dist-packages/uvicorn/server.py", line 62, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "uvloop/loop.pyx", line 1516, in uvloop.loop.Loop.run_until_complete File "/usr/lib/python3/dist-packages/uvicorn/server.py", line 69, in serve config.load() File "/usr/lib/python3/dist-packages/uvicorn/config.py", line 458, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/uvicorn/importer.py", line 24, in import_from_string raise exc from None File "/usr/lib/python3/dist-packages/uvicorn/importer.py", line 21, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1387, in _gcd_import File "", line 1360, in _find_and_load File "", line 1331, in _find_and_load_unlocked File "", line 935, in _load_unlocked File "", line 995, in exec_module File "", line 488, in _call_with_frames_removed File "/home/ubuntu/hyperliquid-demo/backend/main.py", line 1, in from fastapi import FastAPI, WebSocket, WebSocketDisconnect ModuleNotFoundError: No module named 'fastapi' INFO: Stopping reloader process [215165] INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [215252] using StatReload Process SpawnProcess-1: Traceback (most recent call last): File "/usr/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/usr/lib/python3.12/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3/dist-packages/uvicorn/_subprocess.py", line 78, in subprocess_started target(sockets=sockets) File "/usr/lib/python3/dist-packages/uvicorn/server.py", line 62, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "uvloop/loop.pyx", line 1516, in uvloop.loop.Loop.run_until_complete File "/usr/lib/python3/dist-packages/uvicorn/server.py", line 69, in serve config.load() File "/usr/lib/python3/dist-packages/uvicorn/config.py", line 458, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/uvicorn/importer.py", line 24, in import_from_string raise exc from None File "/usr/lib/python3/dist-packages/uvicorn/importer.py", line 21, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1387, in _gcd_import File "", line 1360, in _find_and_load File "", line 1331, in _find_and_load_unlocked File "", line 935, in _load_unlocked File "", line 995, in exec_module File "", line 488, in _call_with_frames_removed File "/home/ubuntu/hyperliquid-demo/backend/main.py", line 1, in from fastapi import FastAPI, WebSocket, WebSocketDisconnect ModuleNotFoundError: No module named 'fastapi' INFO: Will watch for changes in these directories: ['/home/ubuntu/hyperliquid-demo/backend'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [215636] using WatchFiles INFO: Started server process [215638] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 101.32.51.95:33016 - "POST /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:39167 - "WebSocket /ws" [accepted] INFO: connection open WebSocket 错误: 'Info' object has no attribute 'l2_book' INFO: 124.244.39.48:39186 - "OPTIONS /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:39186 - "POST /approve-builder HTTP/1.1" 200 OK WARNING: WatchFiles detected changes in 'main.py'. Reloading... INFO: Shutting down INFO: connection closed INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [215638] INFO: Started server process [216768] INFO: Waiting for application startup. INFO: Application startup complete. WARNING: WatchFiles detected changes in 'main.py'. Reloading... INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [216768] INFO: Started server process [217001] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 101.32.51.95:35770 - "POST /approve-builder HTTP/1.1" 200 OK WARNING: WatchFiles detected changes in 'main.py'. Reloading... INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [217001] INFO: Started server process [218949] INFO: Waiting for application startup. INFO: Application startup complete. Exchange 初始化成功,地址: 0xF4e422730ba7e44201e4aa246701e188967781E1 INFO: 101.32.51.95:60284 - "POST /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:51942 - "OPTIONS /place-order HTTP/1.1" 200 OK INFO: 124.244.39.48:51942 - "POST /place-order HTTP/1.1" 200 OK INFO: 124.244.39.48:39477 - "POST /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:39489 - "WebSocket /ws" [accepted] INFO: connection open WebSocket 错误: 'Info' object has no attribute 'l2_book' INFO: 124.244.39.48:39496 - "OPTIONS /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:39496 - "POST /approve-builder HTTP/1.1" 200 OK INFO: 124.244.39.48:53747 - "POST /approve-builder HTTP/1.1" 200 OK