小编flo*_*sch的帖子

Python 脚本无法正确终止

python main.py我有一个 python 脚本,我在终端上调用它。它启动一个 Qt-GUI,它可以正确执行,并在我关闭 GUI 时终止。

但是,有时会打印最后一条调试消息“over and out”,但脚本本身不会终止。ctrl+ cctrl+dctrl+z对执行没有任何影响。在我看来,当程序内部抛出异常(并被 GUI 捕获)时,就会发生这种情况。

我不知道如何调试这个问题,因为它显然不会在 GUI 本身中发生。我该如何调试并找出我做错了什么?

if __name__ == '__main__':
    import sys 

    app = QApplication(sys.argv)
    form = MainGui()
    form.show()
    app.exec_()
    print "over and out"
Run Code Online (Sandbox Code Playgroud)

编辑:在我看来,好像最后还有一些线程仍然处于活动状态。但是,我没有明确地使用线程(我不知道 Qt 内部做了什么......)。有没有办法查看到底所有正在运行的线程?

编辑2:哦我的天啊。解决方案很简单,就是重新启动我的系统。不知何故,我的操作系统做了一些疯狂的事情并阻止了脚本终止。

python debugging pyqt

5
推荐指数
1
解决办法
1649
查看次数

PIL无法识别Mac OS下的jpeg库

这样的脚本:

from PIL import Image, ImageOps
img = Image.open('1.JPG')
thumb = ImageOps.fit(img, (200,200) , Image.ANTIALIAS, (0.5, 0.5))
Run Code Online (Sandbox Code Playgroud)

导致此IOError:

Traceback (most recent call last):
  (...)
  File "/Library/Python/2.7/site-packages/PIL/Image.py", line 385, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
Run Code Online (Sandbox Code Playgroud)

如何获得我的PIL的jpeg支持?这个问题似乎众所周知,但现有的线程并没有为我解决.我使用brew和pip作为我的python包,并且已经尝试了以下内容:

  • brew install jpeg 原因 Error: jpeg-8d already installed
  • brew install libjpeg 原因 Error: jpeg-8d already installed
  • sudo pip install Pillow - 安装有效,但不会改变任何东西

如何获得我的PIL安装的jpeg支持?有任何想法吗?

python macos python-imaging-library

5
推荐指数
1
解决办法
3708
查看次数

动态调用配置文件中定义的python-class

我有一个 config.cfg,我使用 python 模块 ConfigParser 对其进行解析。在一节中,我想配置表单的分配fileextension : ClassName。在以下字典中解析结果:

types = {
  "extension1" : "ClassName1",
  "extension2" : "ClassName2"
}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道我现在可以这样做:

class_ = eval(types[extension])
foo = class()
Run Code Online (Sandbox Code Playgroud)

但我明白这eval是邪恶的,不应该被使用。

您知道动态配置哪个文件扩展名导致哪个类的更好方法吗?

python

2
推荐指数
1
解决办法
1554
查看次数

标签 统计

python ×3

debugging ×1

macos ×1

pyqt ×1

python-imaging-library ×1