【发布时间】:2018-04-13 00:19:45
【问题描述】:
我希望这是一个简单的问题,我只是遗漏了一些东西。我有一个脚本保存在两个不同的位置,在我们的共享服务器上和本地桌面上。当我从服务器运行脚本时,我得到了看似 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'
这是我可以解决的。由于某种原因,保存在服务器上的版本需要消息,而保存在我桌面上的版本需要 msg。没关系,因为它至少有效。对我来说打破这一点的是图像功能。它适用于我桌面上的版本,但我不知道如何让它在我们服务器上的版本上运行。完整代码如下:
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"
` 一般来说,我知道这可能是丑陋的代码。但除此之外,这里的最终游戏目标是打开一个图像,将其显示给用户,然后删除所有从桌面创建的图像。任何建议或帮助将不胜感激。
【问题讨论】:
-
对不起,我不明白你的意思。我提到的服务器仅用于存储脚本。它甚至没有真正被服务器执行。
-
忘掉我之前的 cmets 吧。首先,您可能希望将
os.path.join用于文件夹而不是反斜杠。那你能不能试着用IMG打印一个对os.path.exist的调用来检查服务器说什么? -
os.path.exists(IMG) 为 os.path.join 和我最初的方式返回 True。这很奇怪,因为一旦我将脚本保存到服务器,“image=”似乎就停止工作了。
标签: python operating-system python-imaging-library easygui