Tổng hợp những câu hỏi hay gặp nhất khi cài đặt, chạy, lên lịch và thiết lập bảo mật cho PyAutoFlow.
Cài đặt và bắt đầu
PyAutoFlow là phần mềm gì?
Đây là ứng dụng máy tính trên Windows để viết, chạy và hẹn giờ chạy tự động mã Python. Trình soạn thảo, kết quả chạy, lịch chạy, lịch sử chạy và các khóa học đều nằm trong một cửa sổ, nên ngay cả người mới học Python cũng có thể chạy mã ngay sau khi cài đặt.
Bạn không cần tự dựng môi trường lập trình, và mã được chạy trong môi trường cách ly nên một đoạn mã viết sai khó gây ảnh hưởng đến toàn bộ máy tính.
Cần máy tính như thế nào? (Yêu cầu hệ thống)
- Hệ điều hành: Windows 10 trở lên (64-bit) — hiện chưa có bản macOS hay Linux.
- Bộ nhớ: khuyến nghị từ 4GB
- Dung lượng đĩa: từ 1GB (cần thêm dung lượng nếu cài môi trường Python và môi trường ảo)
- Mạng: cần khi cập nhật, dùng cộng đồng và khóa học. Việc viết và chạy script vẫn hoạt động khi ngoại tuyến.
Chưa cài Python thì có dùng được không?
Được. Nếu thẻ Môi trường Python ở góc dưới bên trái thanh bên hiển thị Chưa kết nối, hãy bấm vào thẻ đó. Cài đặt → Môi trường Python sẽ mở ra, và chỉ một lần bấm [Cài đặt Python] là ứng dụng tự tải về và thiết lập môi trường Python riêng (cần kết nối Internet, chỉ một lần đầu).
Các bản Python khác đã có trên máy sẽ không bị đụng đến. Khi xong, thẻ chuyển thành Đã kết nối và hiển thị phiên bản.
Vì sao Python cài từ Microsoft Store không hiện trong danh sách?
Python bản Store chạy bên trong app container nên không tương thích với cơ chế chạy cách ly của PyAutoFlow, vì vậy nó bị loại khỏi danh sách một cách có chủ đích. Đôi khi thứ trông giống python.exe thực ra chỉ là tệp rỗng mở trang cửa hàng.
Hãy dùng nút [Cài đặt Python] ở trên, hoặc cài bằng bộ cài chuẩn từ python.org.
Khi cài đặt xuất hiện cảnh báo của Windows hoặc bị phần mềm diệt virus chặn
- Kiểm tra nhà phát hành: bộ cài và các tệp thực thi của ứng dụng đều được ký mã với tên 엣지비트 (EdgeBit). Hãy xác nhận cửa sổ hiện ra khi cài đặt ghi nhà phát hành là
엣지비트 — nếu để trống hoặc mang tên khác thì đó không phải tệp chính thức.
- SmartScreen: dù đã có chữ ký, phiên bản vừa phát hành còn ít lượt tải nên vẫn có thể hiện "Windows protected your PC". Hãy bấm
More info, kiểm tra nhà phát hành là 엣지비트 rồi chọn Run anyway. Trước hết hãy chắc chắn tệp được tải từ trang tải chính thức.
- Phần mềm diệt virus / bảo mật của công ty: bộ cài hoặc tiến trình Python có thể bị chặn. Trên máy công ty, việc cài đặt, chạy hoặc truy cập mạng có thể bị chính sách hạn chế — hãy hỏi quản trị viên.
- Muốn tự kiểm tra? Trang tải xuống công bố mã băm SHA256 cho từng tệp cài đặt để bạn đối chiếu với tệp mình đã tải, và hiển thị kết quả quét vi-rút khi đã có.
- Hãy cài trên ổ đĩa cục bộ, không cài trên ổ đĩa mạng.
Viết và chạy script
Script tôi viết được lưu ở đâu?
Các tệp .py thực tế nằm trong thư mục Documents, tại Documents\PyAutoFlow\Scripts. Tên tệp được hiển thị nguyên vẹn trong lịch chạy và lịch sử chạy, nên đặt tên nói rõ mục đích sẽ giúp bạn tìm lại dễ hơn.
Gỡ ứng dụng cũng không xóa thư mục này.
Xem kết quả chạy và lỗi ở đâu?
Bấm nút Chạy ở góc trên bên phải trình soạn thảo, kết quả sẽ hiện ở các thẻ bên dưới.
- Kết quả — đầu ra chuẩn, thông báo lỗi, mã thoát và thời gian chạy
- Vấn đề — cảnh báo và lỗi phát hiện trong mã trước khi chạy
- Gói — tình trạng cài đặt của các thư viện mà script này cần
Các lần chạy trước nằm ở mục Lịch sử chạy trong menu bên trái. Nó lưu cả thời điểm thất bại và môi trường Python đã dùng, rất hữu ích khi bạn muốn so sánh xem một lỗi có lặp lại hay không.
Đọc thông báo lỗi (traceback) thế nào?
Lỗi Python nên đọc từ dưới lên trên.
- Dòng cuối cùng cho biết loại lỗi và nguyên nhân. Ví dụ
NameError: name 'prnt' is not defined nghĩa là bạn gọi một tên không tồn tại — thường là lỗi gõ nhầm.
- Ngay phía trên,
File "...", line 12 chính là dòng trong mã của bạn đã phát sinh lỗi. Nếu có nhiều tệp, hãy xem dòng cuối cùng có tên tệp của bạn.
- Những lỗi hay gặp:
ModuleNotFoundError (chưa cài thư viện), IndentationError (thụt lề), TypeError (sai kiểu dữ liệu), FileNotFoundError (đường dẫn tệp).
Nếu vẫn chưa ra, đừng loay hoay một mình. Hãy đăng ở Hỏi & Đáp kèm (1) bạn định làm gì, (2) toàn bộ thông báo lỗi, (3) đoạn mã bị lỗi. Màn hình đặt câu hỏi có ô riêng để dán mã.
Cài các thư viện như requests hay pandas thế nào?
Dùng thẻ Gói phía dưới trình soạn thảo để cài, nâng cấp hoặc gỡ thư viện. Phần lớn lỗi ModuleNotFoundError được giải quyết ngay tại đây.
Nếu bạn chạy nhiều script, dùng môi trường ảo sẽ an toàn hơn: mỗi dự án giữ phiên bản thư viện riêng, nên cập nhật cho script này không làm hỏng script khác. Bạn tạo và chọn môi trường ảo trong Cài đặt → Môi trường Python.
Chữ hiển thị bị lỗi font (mã hóa)
Hãy kiểm tra cả mã hóa của tệp lẫn mã hóa đầu ra.
- Chỉ định rõ mã hóa khi mở tệp:
open('data.csv', encoding='utf-8')
- Với tệp CSV tạo từ Excel, đôi khi mã hóa cũ mới đúng (ví dụ
encoding='cp1258' hoặc cp949 tùy ngôn ngữ).
- Vấn đề tương tự cũng xảy ra khi bạn nhận đầu ra từ chương trình bên ngoài.
Có thể đặt điểm dừng để gỡ lỗi từng dòng không?
Có. Thẻ Gỡ lỗi phía dưới trình soạn thảo cho phép đặt điểm dừng, chạy từng dòng và xem giá trị biến.
Tuy nhiên ở mức bảo mật nghiêm ngặt nhất, chức năng gỡ lỗi bị tắt. Trình gỡ lỗi cần một kênh liên lạc giữa ứng dụng và tiến trình Python, mà chế độ nghiêm ngặt chặn kênh đó. Khi cần gỡ lỗi, hãy hạ mức bảo vệ xuống một bậc trong Cài đặt → Bảo mật & sandbox.
Bảo mật và sandbox
"Chạy được bảo vệ" là gì? Có nên bật không?
Đó là tính năng chạy script trong môi trường cách ly. Khi bật, ảnh hưởng tới các tệp ngoài thư mục làm việc và tới hệ thống giảm đi đáng kể. Đi kèm là kiểm tra an toàn script: phân tích mã mà không chạy, báo trước những lệnh gọi có thể rủi ro như shell, mạng hay thực thi động.
Chúng tôi khuyên bạn nên bật, nhất là lần đầu chạy mã lấy từ Internet, từ cộng đồng, hoặc do AI tạo ra. Tùy chọn nằm ở Cài đặt → Bảo mật & sandbox.
Dùng subprocess để chạy chương trình khác thì bị lỗi (WinError 367)
Ở chế độ chạy được bảo vệ, việc script khởi chạy chương trình khác (tiến trình con) bị chặn theo mặc định. Khi subprocess.run(...) hoặc một lệnh bên ngoài thất bại với WinError 367 (không thể hoàn thành thao tác) thì chính là trường hợp này.
Nếu đó là điều bạn cố ý làm, hãy chuyển sang cho phép chạy shell (chương trình bên ngoài) trong Cài đặt → Bảo mật & sandbox. Lưu ý rằng nới lỏng thiết lập này sẽ mở rộng những gì script có thể làm trên máy, nên chỉ đổi sau khi đã đọc kỹ mã.
Ngoài ra, lần chạy cách ly không có cửa sổ console. Nhận nhập liệu bằng input() vẫn hoạt động bình thường, nhưng mã cần console thật (ví dụ đọc kích thước terminal) có thể thất bại.
Lưu tệp thì báo lỗi quyền truy cập
Ở chế độ chạy được bảo vệ, chỉ được ghi bên trong thư mục làm việc. Các đường dẫn bên ngoài luôn bị chặn bất kể thiết lập, và nếu bạn tắt quyền ghi thì ngay cả thư mục làm việc cũng thành chỉ đọc.
- Hãy dùng đường dẫn tương đối như
open('result.csv', 'w') thay cho đường dẫn tuyệt đối kiểu Desktop hay C:\.
- Nếu bắt buộc phải xuất tệp ra thư mục khác, hãy điều chỉnh quyền trong Cài đặt → Bảo mật & sandbox, hoặc tạm tắt chạy được bảo vệ cho lần chạy đó.
Gọi requests nhưng không truy cập được Internet
Chạy được bảo vệ có thể hạn chế quyền truy cập mạng của script. Nếu Internet vẫn bình thường mà chỉ script không kết nối được, hãy kiểm tra thiết lập này trước — mục mạng trong Cài đặt → Bảo mật & sandbox.
Proxy hay tường lửa của công ty, và tính năng bảo vệ mạng của phần mềm diệt virus, cũng có thể chặn tiến trình Python.
Đang chạy thì dừng đột ngột hoặc báo MemoryError
Chạy được bảo vệ đặt giới hạn bộ nhớ cho script và dừng những lần chạy kéo dài quá lâu. Đọc nguyên một tệp CSV lớn hay liên tục nới rộng một danh sách là những trường hợp hay gặp.
Bạn xem giới hạn hiện tại trong Cài đặt → Bảo mật & sandbox. Nếu đã ở mức tối đa thì không thể nâng thêm, lúc đó phải sửa mã.
- Xử lý tệp theo từng dòng (hoặc theo khối) thay vì nạp tất cả cùng lúc.
- Giải phóng ngay các danh sách, DataFrame lớn không còn dùng.
- Kiểm tra xem có bị vòng lặp vô hạn không.
Tắt sandbox có được không?
Nếu script là mã do chính bạn viết, bạn biết rõ nó làm gì (ví dụ dọn tệp trong thư mục bạn chỉ định, gọi một chương trình bên ngoài), và quyền cần thiết cứ bị chặn ở chế độ chạy được bảo vệ, thì tắt cũng không sao.
Ngược lại, hãy giữ bật trong các trường hợp sau.
- Lần đầu chạy mã lấy từ Internet, từ cộng đồng hoặc do AI tạo ra
- Mã có xóa tệp, sửa hàng loạt, hoặc khởi chạy chương trình khác
- Công việc chạm tới dữ liệu cá nhân, như tự động hóa email, tin nhắn hay trình duyệt
Tài khoản và gói đăng ký
Free và Pro khác nhau thế nào?
Không đăng nhập ứng dụng vẫn chạy bình thường, và khi đó bạn đang dùng gói Free.
- Free — 10 script, 3 lịch chạy, dùng cộng đồng, khóa học nhập môn và toàn bộ tính năng cơ bản
- Pro — script và lịch chạy không giới hạn, toàn bộ khóa học, máy chủ MCP (lưu và hẹn giờ chạy mã do Claude hoặc ChatGPT viết), hỗ trợ ưu tiên qua email
Sau khi đăng ký và xác thực email, bạn được dùng Pro miễn phí 30 ngày. Không cần đăng ký thẻ, và khi hết hạn bạn chỉ đơn giản quay lại Free — ứng dụng không bị khóa.
Hủy đăng ký thì mất quyền dùng ngay lập tức?
Không. Hủy chỉ dừng lần gia hạn tự động tiếp theo, còn Pro vẫn dùng được đến hết thời hạn bạn đã thanh toán.
Bạn có thể hủy bất cứ lúc nào tại trang giới thiệu Pro hoặc trong ứng dụng ở Cài đặt → Đăng ký.
Tôi có được hoàn tiền không?
Vì đây là nội dung số nên quyền rút lại bị hạn chế sau khi bắt đầu sử dụng, nhưng theo chính sách riêng của chúng tôi, bạn được hoàn tiền toàn bộ nếu yêu cầu trong 7 ngày với gói tháng và 14 ngày với gói năm kể từ khi thanh toán.
Hãy bấm nút Yêu cầu hoàn tiền ở trang giới thiệu Pro. Yêu cầu sẽ được gửi tới đội ngũ vận hành và xử lý sau khi xem xét (bấm nút không có nghĩa là hoàn tiền ngay lập tức). Sau thời hạn đó, hãy hủy đăng ký để dừng gia hạn và tiếp tục dùng hết thời gian đã trả.