コードはQRコードを生成して出力しますが、インポートされたライブラリ(win32print、Win32ui)をサポートしていないため、Debian Osでは動作しません。 コード全体を変更せずにDebianで実行する方法を教えてもらえますか?Windows PythonコードがLinuxで動作しないDebian
from random import randint
import win32print
import win32ui
from PIL import Image, ImageWin
from PIL._imaging import font
from PIL import ImageFont
from PIL import ImageDraw
HORZRES = 8
VERTRES = 10
LOGPIXELSX = 88
LOGPIXELSY = 90
PHYSICALWIDTH = 110
PHYSICALHEIGHT = 111
PHYSICALOFFSETX = 112
PHYSICALOFFSETY = 113
__author__ = 'masoodhussain'
import qrcode
import subprocess
import os
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('Masooddkjfdlfs,kokdfds sddshfhkjshfljsdhkjfdrtyyhtfhfghgh3')
qr.make(fit=True)
"subprocess.call(['lp', 'foo.png'])"
printer_name = win32print.GetDefaultPrinter()
img = qr.make_image()
img.show()
random_number= randint(0,10000)
img.save('label_'+str(random_number)+'.png')
file_name = 'label_'+str(random_number)+'.png'
print(file_name)
hDC = win32ui.CreateDC()
hDC.CreatePrinterDC (printer_name)
printable_area = hDC.GetDeviceCaps (HORZRES), hDC.GetDeviceCaps (VERTRES)
printer_size = hDC.GetDeviceCaps (PHYSICALWIDTH), hDC.GetDeviceCaps (PHYSICALHEIGHT)
printer_margins = hDC.GetDeviceCaps (PHYSICALOFFSETX), hDC.GetDeviceCaps (PHYSICALOFFSETY)
bmp = Image.open (file_name)
if bmp.size[0] > bmp.size[1]:
bmp = bmp.rotate (90)
ratios = [1.0 * printable_area[0]/bmp.size[0], 1.0 * printable_area[1]/bmp.size[1]]
scale = min (ratios)
hDC.StartDoc (file_name)
hDC.StartPage()
dib = ImageWin.Dib (bmp)
scaled_width, scaled_height = [int (scale * i) for i in bmp.size]
x1 = int ((printer_size[0] - scaled_width)/2)
y1 = int ((printer_size[1] - scaled_height)/2)
x2 = x1 + scaled_width
y2 = y1 + scaled_height
dib.draw (hDC.GetHandleOutput(), (x1, y1, x2, y2))
hDC.EndPage()
hDC.EndDoc()
hDC.DeleteDC()
私はサポートされていないライブラリを削除することで、コードを実行するときには、この部分にエラーが発生します:エラーが、私はそこに他のファイルを使用するためのフォルダ全体をインポートしようとしています
import qrcode
をインポートします。 Windowsでは完全に動作していました。どんな助けもありがたいです。ありがとう
まず、qrcodeがインストールされていることを確認する必要があります。あなたは気質から次のコマンドを実行することでこれを確認することができます: pip freeze | grep qrcode – Tom