V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  seventhbible  ›  全部回复第 1 页 / 共 1 页
回复总数  18
2021-09-11 15:46:23 +08:00
回复了 seventhbible 创建的主题 Python pycharm 导入其他项目文件夹求助
直接双击 py 文件就会直接通过安装的编译器运行这个脚本弹出执行程序了,但是这个执行程序只有对系统安装过 py 编译器的环境有效。我现在想要在编译器里通过 pyinstaller 打包这个项目成为一个 win 系统下通用可执行的程序。就是在 terminal 里无法执行 pyinstaller 命令。
2021-09-11 15:11:20 +08:00
回复了 seventhbible 创建的主题 Python pycharm 导入其他项目文件夹求助
那么请问如何正确在一个新环境打开别人的 python 项目文件夹呢?
2021-09-11 14:11:39 +08:00
回复了 seventhbible 创建的主题 Python pycharm 导入其他项目文件夹求助
>PS C:\Users\lezar\PycharmProjects\excelPro> pyinstaller -F GUI.py

>pyinstaller : 无法将“pyinstaller”项识别为 cmdlet 、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

>所在位置 行:1 字符: 1

>pyinstaller -F GUI.py

>CategoryInfo : ObjectNotFound: (pyinstaller:String) [], CommandNotFoundException

>FullyQualifiedErrorId : CommandNotFoundException

补充一下,提示内容是这个,这一段放在主贴里就要验证手机号,还收不到短信,蛋疼。。。。
最后报告一下,是我的思考方式错误了。应该使用 try except 来判断异常错误,最后让线程自动退出关闭的。主动杀掉正在运行的线程这种操作并不合理。。。。
@ec0 确实这个方法可以,我刚刚说错了。。。但是请问有没有一种统一的方法由错误事件唤起一个通用的方法来退出特定的子线程?因为可能我处理不同子线程的逻辑业务都会很多,每个逻辑业务的判断错误条件五花八门,如果可以的话,我希望只要子线程出现异常,就统一发送错误信息,交由事件管理器唤起一个统一的方法来退出这个子线程。
@ec0 而且这样的话线程并不会自己结束,会无限循环这个 for 循环,从 1 到 3
@ec0 对!这也是一种方法,感谢大佬回复。但是如果我需要将这个封装成一个传参的通用方法 check_error 的话,从结构上来说它应该属于哪里呢?
感谢大佬们的回复,可能是一下子知识出现断层了,我先补一下其他知识。如果不懂再问。。。
@no1xsyzy 抱歉小弟我才疏学浅,这里的 weakref 是如何替换?
@todd7zhang 理想情况下我是希望可以借助发送 event 来终结当前的子线程,因为 event 可以带出来错误的各种信息。对后续处理会很有帮助。
emmmmm,看了一下楼上大佬的链接,大意是我需要重新定义一个继承了线程的类,然后重写这个类下的 stop 方法(用一个布尔值的开关来控制 thread 的 run 方法)。
在我的代码示例中,就是每次发送出错误事件的时候,通知修改这个布尔值开关 [设为全局变量] 变为 False 然后自然使得接下来的线程自动跳出 run 方法?
不好意思,我接触 python 时间还不够长久,有些地方理解力还不是很强,如果有说错请指正。
感谢 lz 大大们的回复,研究了一段时间搞定了。。。

@LeeReamond pyinstaller 打包的时候,你可以--onefile 选项打包成一个单独的 exe,这个 exe 在 win 下启动的时候会有点慢,大概等 5-7 秒。但是如果你打包成一个包含了很多内部 py 文件的文件夹,那么就会启动非常快。
@ec0 非常感谢大佬这么有耐心帮助我!我马上就去试试!
其实不只是按钮,我的 gui 上还有其他的类似 combobox,text input entry 框等等可以互动的组件,如果想要一起锁住,请问有比较通用的方法么?
@ec0 如果我的 GUI 上有 N 个按钮的话,就是每个按钮都要这样设定么
@ec0 大佬可以追问一个问题嘛!就是现在的做法是把具体的订阅者的业务逻辑放到另外一个子线程去跑了,主线程只管 GUI 。那么如何做到我在 GUI 上点击一个按钮之后,在子线程开始处理具体的业务逻辑(譬如 count )且没有处理结束之前,锁住整个 GUI 的其他按钮模块不允许进行其他业务线程的处理?
@ec0 原来如此,再次感谢大佬指教!
@ec0 我的天,大佬非常非常感谢您的指导!终于解决了这个困扰我很久的问题,谢谢谢谢谢谢!另外可以请大佬解答一下 daemon 这个是啥意思么?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2624 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 03:43 · PVG 11:43 · LAX 19:43 · JFK 22:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.