Download probe_env.py from SupantBT/Beltbot: direct link, hf CLI and curl.
- Browser
- Download file 4.02 kB
-
https://huggingface.co/spaces/SupantBT/Beltbot/resolve/main/probe_env.py
- Command line
-
hf download hf://spaces/SupantBT/Beltbot/probe_env.py
-
curl -L -o probe_env.py https://huggingface.co/spaces/SupantBT/Beltbot/resolve/main/probe_env.py
4.02 kB
| """probe_env.py — ดูว่าอินเทอร์พรีเตอร์ตัวที่รันไฟล์นี้มีของที่ chatbot_v5 ต้องใช้ครบไหม | |
| รันหนึ่งตัวต่อหนึ่งครั้ง | |
| & "E:\\Project2\\saleschatbot\\venv\\Scripts\\python.exe" probe_env.py | |
| อ่านเวอร์ชันด้วย importlib.metadata ไม่ใช่ __version__ | |
| เพราะบางแพ็กเกจ (qdrant_client เป็นต้น) ไม่มีแอตทริบิวต์ __version__ | |
| ถ้าเช็กด้วย __version__ ใน try/except กว้าง ๆ จะได้ผลว่า "ไม่ได้ติดตั้ง" ทั้งที่ติดตั้งแล้ว | |
| — เป็นบั๊กที่เคยทำให้ check_app.py รายงานผิดมาแล้วครั้งหนึ่ง | |
| แยกสองคำถามให้ชัด | |
| installed มีแพ็กเกจอยู่ใน site-packages ของอินเทอร์พรีเตอร์นี้ไหม | |
| imports import ได้จริงไหม (บางตัวมีแต่พัง เช่น torch ที่ DLL ไม่ครบ) | |
| """ | |
| import importlib | |
| import importlib.metadata as md | |
| import sys | |
| # (ชื่อที่ pip รู้จัก, ชื่อที่ใช้ import) | |
| NEEDED = [ | |
| ("transformers", "transformers"), | |
| ("torch", "torch"), | |
| ("qdrant-client", "qdrant_client"), | |
| ("google-generativeai", "google.generativeai"), | |
| ("sentence-transformers", "sentence_transformers"), | |
| ("einops", "einops"), | |
| ("pillow", "PIL"), | |
| ("numpy", "numpy"), | |
| ("fastapi", "fastapi"), | |
| ("uvicorn", "uvicorn"), | |
| ("python-multipart", "multipart"), | |
| ("python-dotenv", "dotenv"), | |
| ] | |
| def version(dist): | |
| try: | |
| return md.version(dist) | |
| except md.PackageNotFoundError: | |
| return "" | |
| except Exception as e: # noqa: BLE001 | |
| return f"? {type(e).__name__}" | |
| def importable(name): | |
| try: | |
| importlib.import_module(name) | |
| return "ok", "" | |
| except ImportError: | |
| return "ไม่ได้", "import ไม่เจอ" | |
| except Exception as e: # noqa: BLE001 | |
| return "พัง", f"{type(e).__name__}: {str(e)[:60]}" | |
| print(f"python {sys.version.split()[0]}") | |
| print(f"executable {sys.executable}") | |
| print() | |
| print(f"{'แพ็กเกจ':<24}{'เวอร์ชัน':<14}{'import':<8}หมายเหตุ") | |
| print("─" * 78) | |
| missing = [] | |
| for dist, mod in NEEDED: | |
| ver = version(dist) | |
| if not ver: | |
| missing.append(dist) | |
| print(f"{dist:<24}{'—':<14}{'-':<8}ไม่ได้ติดตั้ง") | |
| continue | |
| state, note = importable(mod) | |
| print(f"{dist:<24}{ver:<14}{state:<8}{note}") | |
| print("─" * 78) | |
| tv = version("transformers") | |
| if not tv: | |
| print("transformers ไม่มี — อินเทอร์พรีเตอร์นี้รัน chatbot_v5 ไม่ได้") | |
| else: | |
| try: | |
| major, minor = (int(x) for x in tv.split(".")[:2]) | |
| if (major, minor) >= (4, 57): | |
| print(f"transformers {tv} — สูงเกิน Jina v3 จะพังที่ hasattr(torch, torch_dtype)") | |
| print(" ต้องต่ำกว่า 4.57 ในอินเทอร์พรีเตอร์ที่ใช้รันแอป") | |
| else: | |
| print(f"transformers {tv} — อยู่ในช่วงที่ Jina v3 ใช้ได้") | |
| except ValueError: | |
| print(f"transformers {tv} — อ่านเวอร์ชันเป็นตัวเลขไม่ได้ ต้องดูด้วยตา") | |
| if missing: | |
| print(f"\nขาด {len(missing)} ตัว: {', '.join(missing)}") | |
| else: | |
| print("\nมีครบทุกตัวที่ต้องใช้") | |