Python: Kesalahan muncul untuk skrip yang disimpan di server

Saya berharap ini adalah masalah sederhana dan saya hanya melewatkan sesuatu. Saya memiliki skrip yang disimpan di dua lokasi berbeda, di server bersama kami dan secara lokal di desktop saya. Ketika saya menjalankan skrip dari server saya mendapatkan kesalahan easygui.

Traceback (most recent call last):
   File "Z:\Python\module1.py", line 35, in <module>
      reply = buttonbox(msg=msg,image=IMG)
TypeError: buttonbox() got an unexpected keyword argument 'msg'

Ini bisa saya atasi. Untuk beberapa alasan, pesan diperlukan untuk versi yang disimpan di server dan pesan diperlukan untuk versi yang disimpan di desktop saya. Tidak apa-apa karena setidaknya berhasil. Bagi saya, yang merusaknya adalah fitur gambar. Ini berfungsi pada versi di desktop saya, tetapi saya tidak tahu cara membuatnya berfungsi pada versi di server kami. Kode lengkap ditunjukkan di bawah ini:

import PIL
from PIL import Image
import os
from easygui import *
import sys
print sys.version, sys.version_info

WORKDIR = "c:\\temp"
DESKTOP = 'c:' + os.environ['HOMEPATH'] + "\Desktop"
os.chdir(DESKTOP)
IMAGES = os.listdir(DESKTOP+"\\New Items Images")
for IMAGE in IMAGES:

path = DESKTOP+"\\New Items Images\\"+IMAGE

#Creates a Tkinter-compatible photo image, which can be used everywhere Tkinter expects an image object.
img = Image.open(path)
width, height = img.size
if width >= height:
    basewidth = 600
    wpercent = (basewidth / float(img.size[0]))
    hsize = int((float(img.size[1]) * float(wpercent)))
else:
    baseheight = 600
    hpercent = (baseheight / float(img.size[1]))
    wsize = int((float(img.size[0]) * float(hpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)

img.save(DESKTOP + "\\" + IMAGE)


IMG = DESKTOP+"\\"+IMAGE
SKU = "sku"
msg = "Is %s acceptable?\n%s\n%sx%s" % (IMAGE, SKU, width, height)
reply = buttonbox(msg=msg,image=IMG)
if ynbox == 1:
    print "This would now get pushed to CA"

` Secara umum saya tahu bahwa ini mungkin kode yang jelek. Namun selain itu, tujuan akhir permainan di sini adalah membuka gambar, menampilkannya kepada pengguna, lalu menghapus semua gambar yang dibuat dari desktop. Saran atau bantuan apa pun akan sangat dihargai.


person TheFarmGuy    schedule 12.04.2018    source sumber
comment
Maaf, saya tidak paham persis apa yang Anda maksud. Server yang saya sebutkan hanya digunakan untuk menyimpan script saja. Itu bahkan tidak benar-benar dijalankan oleh server.   -  person TheFarmGuy    schedule 12.04.2018
comment
Lupakan komentar saya sebelumnya yang keluar dari topik. Hal pertama adalah Anda mungkin ingin menggunakan os.path.join untuk folder, bukan garis miring terbalik. Lalu bisakah Anda mencoba mencetak panggilan ke os.path.exist dengan IMG untuk memeriksa apa yang dikatakan server?   -  person Adonis    schedule 12.04.2018
comment
os.path.exists(IMG) kembali menjadi True untuk os.path.join dan seperti yang saya miliki sebelumnya. Aneh karena sepertinya image= berhenti berfungsi setelah saya menyimpan skrip ke server.   -  person TheFarmGuy    schedule 12.04.2018


Jawaban (1)


Mungkin cara mengimpornya dan mengambil kotak tombol dari perpustakaan lain dan tidak mengenali parameternya.

apakah ini berhasil?

import easygui
easygui.buttonbox(msg=msg, image=IMG)

atau bahkan data biasa seperti ini berfungsi?

import easygui
easygui.buttonbox('Click on your favorite flavor.', 'Favorite Flavor', ('Chocolate', 'Vanilla', 'Strawberry'))

jika tidak satu pun yang berfungsi, Anda mungkin ingin memeriksa versi easygui dan dokumentasi terkait.

atau mungkin ini konflik dengan kelas "ButtonBox" dan fungsi instantiasi "buttonbox" yang mereka miliki yang namanya sama kecuali seseorang tidak menggunakan kwarg dan karena alasan tertentu ada masalah di sana.

https://github.com/robertlugg/easygui/blob/master/easygui/boxes/button_box.py#L110

coba buat instance versi kelas seperti ini

bb = ButtonBox("message", "title", ('Chocolate', 'Vanilla'), None, None, None, None)
reply = bb.run()
person davidejones    schedule 12.04.2018
comment
Tidak beruntung dengan itu. Saya mengubah impor menjadi impor easygui dan mengubah kotak tombol menjadi easygui.bottonbox. Sayangnya, hal yang sama. Berfungsi di file yang disimpan secara lokal tetapi tidak di file yang disimpan di server saya. Terima kasih. Saya menghargainya. - person TheFarmGuy; 12.04.2018
comment
Versi python apa dan versi easygui apa? dan apakah easygui diinstal dengan benar di server python? - person davidejones; 12.04.2018
comment
Saya telah memverifikasi python sebagai 2.7.13 dan .98.1 untuk server dan PC saya. - person TheFarmGuy; 12.04.2018
comment
ya ini aneh karena kesalahan yang Anda laporkan kembali lebih merupakan masalah antarmuka yang tidak mengharapkan kata kunci. Saya telah menambahkan sesuatu yang lain ke jawaban saya, Anda dapat mencoba, membuatnya dari kelas - person davidejones; 12.04.2018