สภาพแวดล้อมเสมือนของ Python เป็นโครงสร้างไดเร็กทอรีที่มีอยู่ในตัวเองซึ่งมีการติดตั้ง Python สำหรับ Python เวอร์ชันเฉพาะ รวมถึงแพ็คเกจเพิ่มเติมจำนวนหนึ่ง
สมมติว่าสคริปต์ของคุณใช้แพ็คเกจ "คำขอ" เพื่อสร้างคำขอ HTTP หากคุณติดตั้งคำขอในสภาพแวดล้อมเสมือน คุณจะต้องตรวจสอบให้แน่ใจว่าสภาพแวดล้อมเสมือนนั้นทำงานอยู่เมื่อสคริปต์ของคุณเรียกใช้จาก cron มิฉะนั้นคุณจะได้รับ ImportError: ไม่มีการร้องขอชื่อโมดูล
.
ในทางกลับกัน หากคุณติดตั้งคำขอทั้งระบบและไม่ได้ใช้สภาพแวดล้อมเสมือนจริง คุณก็ไม่จำเป็นต้องกังวลเกี่ยวกับสิ่งเหล่านี้ในบริบท cron
ต่อไปนี้คือสิ่งที่ฉันจะทำเพื่อแก้ไขปัญหาเฉพาะของคุณ ฉันจะเพิ่มคำสั่งการบันทึกในสคริปต์เพื่อตรวจสอบสมมติฐานและสมมติฐาน: สคริปต์เริ่มต้นเลยหรือไม่ วิ่งได้เต็มที่ไหม? หากส่งคำขอ HTTP จะได้รับสถานะ HTTP ใดกลับมา
บางทีสคริปต์อาจมีข้อยกเว้น แต่ข้อยกเว้นจะไม่ได้รับการบันทึกที่ใดก็ได้ ตัวอย่างนี้รวบรวมเฉพาะ stdout:
* * * * * /path/to/python3.8 /path/to/script/Script.py >> log.txt
เปลี่ยนเป็นจับ stderr ด้วย:
* * * * * /path/to/python3.8 /path/to/script/Script.py >> log.txt 2>&1