我在Windows 7上运行python 2.7.13
我正在用Gtk创建一个窗口(来自pygobject 3.18.2)。
我也使用win32ui(来自pywin32 221)。
当我导入两个模块时,我的程序运行得很好,直到我关闭它。窗口正常关闭,但python进程继续运行,用于运行脚本的cmd窗口不会返回到de cmd提示符。
我必须杀死python才能返回到提示符
这是一个简单的测试脚本。这在我的系统上并不合适。如果我发表评论
void BFS(Graph &g, int s) {
bool *visited = new bool[g.size];
for(int i = 0; i < g.size; i++)
visited[i] = false;
queue<int> q;
visited[s] = true;
q.push(s);
while(!q.empty()) {
s = q.front();
cout << s << ",";
q.pop();
for(int i=0; i<g.size; i++) {
if(!visited[i]) {
visited[i] = true;
q.push(i);
}
}
}
cout << endl;
}
它将关闭正确的
#import win32ui
看起来Gtk和win32ui之间存在冲突。
我需要win32gui和win32ui从pe文件中提取图标。
我该怎么办?
答案 0 :(得分:3)
在以前版本的PyWin32上: https://sourceforge.net/p/pywin32/bugs/609/ https://sourceforge.net/p/pywin32/bugs/636/
import atexit, os
def taskkill_this():
# kill this process
current_pid = os.getpid()
os.system("taskkill /pid %s /f" % current_pid)
atexit.register(taskkill_this)
似乎是一个提供的解决方法。
进一步检查后,它似乎与pywin32和Gtk UI事件进程发生冲突有关。如果可能的话,我建议使用其中一个而不是两个,或者像上面那样使用taskkill hack。
我也注意到,在我见过的所有情况下,这都发生在Windows 7工作站上。