Chạy bot Python
Trang này dùng ví dụ một bot Discord viết bằng discord.py, nhưng cách làm áp dụng cho mọi script Python khác như bot Telegram hay API FastAPI. Bạn cần một server loại Python.
Server Python khởi động như thế nào
Phần tiêu đề “Server Python khởi động như thế nào”Mỗi lần bạn bấm Start trong dashboard, server làm lần lượt ba việc:
- Cài các gói ghi trong biến Additional Python packages (nếu có).
- Nếu có file
requirements.txt(tên file đặt ở biến Requirements file), server chạypip install -r requirements.txt. - Chạy file chính ghi trong biến App py file, mặc định là
app.py.
Thư viện được cài vào thư mục .local ngay trong server, nên bạn không cần tạo virtualenv hay tải thư viện lên.
Chuẩn bị code trên máy
Phần tiêu đề “Chuẩn bị code trên máy”- app.py
- requirements.txt
- .env
import osimport discordfrom dotenv import load_dotenv
load_dotenv()client = discord.Client(intents=discord.Intents.default())
@client.eventasync def on_ready(): print(f"Đã đăng nhập: {client.user}", flush=True)
client.run(os.environ["DISCORD_TOKEN"])discord.pypython-dotenvDISCORD_TOKEN=token-cua-banTải code lên và chạy
Phần tiêu đề “Tải code lên và chạy”-
Mở dashboard, chọn server rồi vào trang Tệp.
-
Kéo thả các file vào trang, hoặc nén cả thư mục thành
.zip, tải lên rồi chọn Giải nén trong menu của file đó. Bỏ các thư mụcvenv,__pycache__ra trước khi nén. -
Vào trang Startup. Kiểm tra ô App py file đúng tên file chính, và chọn phiên bản Python trong ô Docker image nếu cần. Zyhost có Python từ 3.7 tới 3.14.
-
Quay về Console và bấm Start. Lần đầu server cài thư viện nên sẽ lâu hơn một chút. Thấy dòng
Đã đăng nhập: …là bot đã online.
Muốn lấy code từ GitHub thay vì tải tay, cách làm giống hệt server Node.js, xem Lấy code từ GitHub.
Khi bot không chạy
Phần tiêu đề “Khi bot không chạy”ModuleNotFoundError: No module named 'discord' nghĩa là thiếu thư viện trong requirements.txt. Lưu ý tên gói khi cài có thể khác tên khi import, ví dụ cài discord.py nhưng import discord, cài python-dotenv nhưng import dotenv.
python: can't open file '/home/container/app.py' nghĩa là ô App py file không khớp với tên file thật. Sửa lại trong Startup.
Lỗi khi cài thư viện thường do phiên bản Python không hợp với thư viện. Đọc dòng lỗi của pip trong Console, rồi đổi Docker image sang phiên bản Python mà thư viện hỗ trợ.
Bot chạy được một lúc rồi tắt thường do hết RAM, còn chậm dần thường do hết CPU-giờ. Xem thêm ở CPU-giờ là gì.