เครื่องมือสร้าง Electron ERROR Error: Failed to run "choco install pywin32 --yes"
- Tan Shuai
- การพัฒนาซอฟต์แวร์
- 08 Sep, 2021
เมื่อทำงานกับเครื่องมือ Electron Build Tools คุณอาจพบข้อผิดพลาดที่เกี่ยวข้องกับการติดตั้ง pywin32 ผ่าน Chocolatey ซึ่งอาจทำให้คุณรู้สึกหงุดหงิด โดยเฉพาะเมื่อมันเป็น dependency ที่จำเป็นสำหรับโปรเจ็กต์ของคุณ ด้านล่างนี้เป็นคำอธิบายรายละเอียดของปัญหาและขั้นตอนที่เป็นไปได้ในการแก้ไข
ข้อผิดพลาด
เมื่อเริ่มต้นโปรเจ็กต์ Electron โดยใช้เครื่องมือ Electron Build Tools คุณอาจเห็นข้อความแสดงข้อผิดพลาดดังนี้:
E:\\>e init main-testing -i testing --root=e:/src/electron
WARN A fixable error has occurred
--> A required dependency "pywin32" could not be located, it probably has to be installed.
Do you want build-tools to try fix this for you? [y/n]: y
Running "choco install pywin32 --yes"
ERROR Error: Failed to run "choco install pywin32 --yes"
at spawnSyncWithLog (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:11:11)
at fix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:39:9)
at maybeAutoFix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\maybe-auto-fix.js:13:3)
at whichAndFix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\which.js:10:5)
at checkPlatformDependencies (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:61:7)
at Object.<anonymous> (C:\\Users\\zeeis\\.electron_build_tools\\src\\e-init.js:165:3)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
ข้อผิดพลาดนี้มักเกิดขึ้นเพราะสคริปต์การติดตั้งแพ็กเกจ pywin32 ไม่สามารถหาชุดไฟล์ที่จำเป็นจากเซิร์ฟเวอร์ระยะไกล ซึ่งทำให้เกิดข้อผิดพลาด 404 บ่งชี้ว่าไฟล์ไม่สามารถหาได้จาก URL ที่ระบุ
การทำความเข้าใจข้อผิดพลาด
ส่วนสำคัญของข้อความแสดงข้อผิดพลาดคือ:
ERROR: The remote file either doesn't exist, is unauthorized, or is forbidden for url 'http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win-amd64-py3.9.exe/download'. Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (404) Not Found."
นี่บ่งชี้ว่า URL สำหรับดาวน์โหลด pywin32 ไม่ถูกต้องอีกต่อไป ซึ่งหมายความว่า Chocolatey ไม่สามารถดึงไฟล์การติดตั้งที่จำเป็นได้
ขั้นตอนการแก้ไขปัญหา
นี่คือบางขั้นตอนที่คุณสามารถดำเนินการเพื่อแก้ไขปัญหานี้:
1. ตรวจสอบการติดตั้ง Chocolatey
ตรวจสอบให้แน่ใจว่า Chocolatey ติดตั้งถูกต้องและอัปเดตเป็นเวอร์ชันล่าสุด คุณสามารถตรวจสอบเวอร์ชันของ Chocolatey ได้ด้วย:
choco --version
เพื่ออัปเดต Chocolatey ใช้คำสั่ง:
choco upgrade chocolatey
2. ติดตั้ง pywin32 ด้วยตนเอง
เนื่องจากการติดตั้งอัตโนมัติล้มเหลว ลองติดตั้ง pywin32 ด้วยตนเอง คุณสามารถดาวน์โหลดเวอร์ชันที่เหมาะสมจาก หน้าการปล่อยของ pywin32 บน GitHub และติดตั้งด้วยตนเอง
3. แก้ไขสคริปต์การติดตั้ง
หากคุณมีการควบคุมสคริปต์ของเครื่องมือ Electron Build Tools คุณสามารถแก้ไขให้ชี้ไปยัง URL ที่ถูกต้องสำหรับ pywin32 หรือจัดการกระบวนการติดตั้งด้วยตนเอง
4. ใช้ตัวจัดการแพ็คเกจทางเลือก
หาก Chocolatey ยังคงล้มเหลว ลองใช้ตัวจัดการแพ็คเกจทางเลือกเช่น pip สำหรับแพ็คเกจ Python:
pip install pywin32
ตัวอย่างการติดตั้ง pywin32 ด้วยตนเอง
- ดาวน์โหลดโปรแกรมติดตั้ง pywin32 ที่เหมาะสมจาก GitHub releases อย่างเป็นทางการ
- เรียกใช้โปรแกรมติดตั้งและทำตามคำแนะนำการติดตั้ง
- ตรวจสอบการติดตั้งโดยรันสคริปต์ Python ง่ายๆ ที่นำเข้า pywin32:
import win32api
print(win32api.GetVersionEx())
การพบข้อผิดพลาด "Failed to run choco install pywin32 --yes
" อาจเป็นอุปสรรคในการพัฒนาของคุณ อย่างไรก็ตาม โดยการเข้าใจสาเหตุและทำตามขั้นตอนที่อธิบายข้างต้น คุณสามารถเอาชนะปัญหานี้และดำเนินการตั้งค่าโปรเจค Electron ของคุณต่อไปได้