469705068 发表于 2020-9-5 23:16:34

用pyinstaller打包之后程序一直反复打开同样的窗口怎么办

用tkinter画了个界面 用编译器跑基本上是没问题的
不过用pyinstaller打包之后按一下按钮就会蹦出来一个同样的窗口 原先的窗口卡死 再按新窗口的按钮的话就loop 关掉新窗口的话原先的就可以跑 不过由于有循环所以又会蹦出新的 然后loop
所以推测问题大概是不是和pyinstaller或者tkinter都没有关系 而是函数的问题。。。。{:10_266:}
不过自己脑残一个 完全不知道怎么排查怎么处理

大概也许有问题的函数段放一下
    ping_str= "-n 1" ifplatform.system().lower()=="windows" else "-c 1"
    cmd= "ping " + " " + ping_str + " " + ip_1
    useShell= not(platform.system().lower()=="windows")
    result= subprocess.run(args=cmd,universal_newlines=True,shell=useShell,stdout=subprocess.PIPE)
    output= result.stdout.splitlines()

作用是ping一下指定的IP(抄来的)
{:10_266:} 如果不是这里有问题也想不出哪里有问题了
{:10_266:} 所以有没有大神能救救我

疾风怪盗 发表于 2020-9-5 23:45:54

stdout=subprocess.PIPE
这个参数去掉或者写None呢?

subprocess.PIPE
一个可以被用于Popen的stdin 、stdout 和stderr 3个参数的特输值,表示需要创建一个新的管道。

469705068 发表于 2020-9-6 11:43:49

疾风怪盗 发表于 2020-9-5 23:45
这个参数去掉或者写None呢?

subprocess.PIPE


不行,去掉或者改成none都解决不了{:10_266:}

疾风怪盗 发表于 2020-9-6 11:46:11

469705068 发表于 2020-9-6 11:43
不行,去掉或者改成none都解决不了

要么全部代码放出来看看
就上面这些,看不出哪里有问题。。。。。。。。。

_2_ 发表于 2020-9-6 13:58:35

本帖最后由 _2_ 于 2020-9-6 14:06 编辑

好像 ping 一个 ip 没那么多代码吧{:10_245:}(有别的要求另说)
import os
def ping_ip(ip: str) -> None:
    os.system("".join(["ping", " ", ip, " ", "|", " ", "clip"]) # Only for Windows
    print("已复制到剪切板")
    return

wzdr 发表于 2020-9-6 14:02:39

来围观下 ,具体新人凑个热闹

469705068 发表于 2020-9-6 17:42:31

_2_ 发表于 2020-9-6 13:58
好像 ping 一个 ip 没那么多代码吧(有别的要求另说)

{:10_266:}也没什么特别的要求 主要就是想知道为什么会有这样的问题 然后怎么解决 直觉感觉问题应该就是在这几行里面 其他都是随便写写也没什么奇怪的循环 拿编译器跑也没问题

469705068 发表于 2020-9-6 17:44:17

疾风怪盗 发表于 2020-9-6 11:46
要么全部代码放出来看看
就上面这些,看不出哪里有问题。。。。。。。。。

{:10_245:}其他的就是普通的建个窗口建个界面什么的 只有抄的这几行一点都看不懂

疾风怪盗 发表于 2020-9-6 18:02:39

469705068 发表于 2020-9-6 17:44
其他的就是普通的建个窗口建个界面什么的 只有抄的这几行一点都看不懂

{:5_99:}那就不知道了。。。。。

_2_ 发表于 2020-9-6 21:28:52

469705068 发表于 2020-9-6 17:42
也没什么特别的要求 主要就是想知道为什么会有这样的问题 然后怎么解决 直觉感觉问题应该就是 ...

……
subprocess,platform 都是什么模块?(必须确保没有 import xxx as platform 类似的,应该不太可能)
还有 not() 又是个什么函数?
你这个片段许多信息不足啊
页: [1]
查看完整版本: 用pyinstaller打包之后程序一直反复打开同样的窗口怎么办