ฉันมีปัญหาแปลกๆ กับ python-qrcode
ฉันใช้งานมันได้ในสภาพแวดล้อมการพัฒนาของเรามาระยะหนึ่งแล้ว โดยไม่มีปัญหาใดๆ เราใช้มันเพื่อสร้างโค้ด QR สองโค้ด ซึ่งทั้งสองโค้ดมี URL ที่มีความยาวเกือบเท่ากันทุกประการ (อันหนึ่งมีตัวอักษรพิเศษและเครื่องหมายทับพิเศษสองตัว) จำเป็นอย่างยิ่งที่รหัสทั้งสองนี้จะต้องมีขนาดเท่ากันทุกประการ
เนื่องจากเราตั้งค่า python-qrcode เมื่อประมาณห้าเดือนที่แล้ว ทุก ๆ qrcode ที่เราสร้างขึ้นจึงมีขนาดเท่ากันทุกประการโดยไม่ล้มเหลว อย่างไรก็ตาม ตอนนี้เราได้ส่งทุกอย่างไปยังเซิร์ฟเวอร์ที่ใช้งานจริงแล้ว และทันใดนั้นเราก็ประสบปัญหา
โดยพื้นฐานแล้ว หนึ่งในรหัสที่เราสร้างมีขนาดใหญ่กว่าปกติ (นี่คือรหัสที่มีอักขระพิเศษสามตัว) อีกรหัสคือขนาดที่ถูกต้อง รหัสทั้งสองถูกสร้างขึ้นโดยใช้ฟังก์ชันเดียวกันทุกประการ เราเพียงส่ง URL ที่แตกต่างกันเพื่อเข้ารหัส
บนเครื่องของฉันและบนเซิร์ฟเวอร์ dev ของเรา qrcode ทั้งหมดมีขนาดเท่ากันทุกประการ (รวมถึงอันที่มีอักขระพิเศษด้วย) แต่บนเซิร์ฟเวอร์ที่ใช้งานจริง อันที่ยาวกว่าจะใหญ่กว่าในขณะที่อีกอันนั้นถูกต้อง
เราใช้การควบคุมเวอร์ชัน Git ดังนั้นไฟล์/ฟังก์ชันทั้งหมด ฯลฯ จะเหมือนกันระหว่างเซิร์ฟเวอร์ ข้อแตกต่างระหว่างการตั้งค่าคือเวอร์ชันของ Ubuntu (12.04 กับ 12.10 บนเซิร์ฟเวอร์ที่ใช้งานจริง) แต่ฉันไม่เห็นสาเหตุที่ทำให้เกิดปัญหานี้
ถ้าโค้ดทั้งสองใหญ่กว่านี้ ผมก็เข้าใจได้ แต่ผมก็ไม่เข้าใจว่าทำไมโค้ดหนึ่งถึงใหญ่กว่าโค้ดอีกอันบนเซิร์ฟเวอร์เดียวเท่านั้น.....?
หากใครสามารถเสนอแนะได้ว่าจะเริ่มดำเนินการได้ที่ไหน ฉันจะขอบคุณมาก!
แก้ไข:
นี่คือรหัสที่เกี่ยวข้อง:
myQrGenerator = qrcode.QRCode(
version=QRCODE_SIZE,
error_correction=qrcode.constants.ERROR_CORRECT_M,
box_size=QRCODE_BOX_SIZE,
border=QRCODE_BORDER_SIZE
)
myQrGenerator.add_data('%s%s/' % (theBaseUrl, str(theHash)))
myQrGenerator.make(fit=True)
เราได้รับตัวแปรเหล่านั้นจาก local_settings.py
make
python-qrcode
จะ พยายามทำให้พอดี ข้อมูลและอาจปรับขนาดรูปภาพได้ ใช้print_tty
เพื่อพิมพ์รหัสลงบนหน้าจอเพื่อหลีกเลี่ยง PIL โดยสิ้นเชิง และตัดการทำงานที่ผิดปกติออก - person soulseekah   schedule 03.12.2012print_tty
บนเครื่องทั้งสองเครื่องให้ผลการทำงานเหมือนกัน โดยที่ 12.10 จะสร้างโค้ด QR ที่ใหญ่กว่า (พร้อมกล่องมากกว่า) สำหรับ URL ที่ยาวกว่า และเกี่ยวกับรหัสทั้งสองผลลัพธ์ใน URL เดียวกัน ขอพูดตรงๆ นะ เมื่อสแกนโค้ด คุณจะได้รับข้อมูลเดียวกันกลับแม้ว่าคุณจะป้อนข้อมูลต่างกันก็ตาม!? - person soulseekah   schedule 03.12.2012