로그 창 (textctrl 상자)에 쓸 필요가있는 여러 스레드를 사용하는 wxpython 응용 프로그램을 작성했습니다. 이 때문에 나는이 튜토리얼 pyinstaller exe with pubsub
http://www.blog.pythonlibrary.org/2010/05/22/wxpython-and-threads/
을 따라 wx.CallAfter 및 PubSub를 사용했다.이
이 코드는 훌륭하게 일을하고 내 코드에 대한 EXE 파일을 만들 pyInstaller 중에 사용하기 쉬운 것이라고 생각from wx.lib.pubsub import Publisher
Publisher().subscribe(self.messenger, "update")
wx.CallAfter(Publisher().sendMessage, "update", "Thread finished!")
def messenger(self, msg):
self.logtxtctrl.WriteText(msg.data)
내 원래의 코드이었다.
내가 얼마나 잘못 했습니까!
그래서 지금이
http://wiki.wxpython.org/WxLibPubSub
를 사용하여, pubSub의 API의 두 가지 버전이있는 것 같습니다 어떤 의견을 읽은 후 나는이 코드는 지금 작동 다음
from wx.lib.pubsub import setuparg1
from wx.lib.pubsub import pub
pub.subscribe(self.messenger, "update")
wx.CallAfter(pub.sendMessage, "update", data="Program success")
def messenger(self, data):
self.logtxtctrl.WriteText(data)
에 내 코드를 쥐게 다시 pyinstaller를 사용하려고 시도했지만 여전히 운이 없었습니다.
그래서 난 후 매우 유용했다 둘의 다음 문서
How to get pubsub to work with pyinstaller?
http://www.pyinstaller.org/ticket/312
를 읽고 난 아직도, 후크 파일과 다른 사양 파일을 변경하는 모든 다른 변화를 시도 그것을 작동시키지 못한다.
이 게시물은 거의 2 년 전입니다. 나는 pubsub를 추가하는 것이 해결 될 것이라고 생각했습니다.
누구나 내가 필요로하는 바늘, 사양 파일에 무엇이 있어야하는지, 그리고 내가 작동하도록해야 할 다른 요소를 어떻게 설명 할 수 있습니까?
해결 방법이 없다면 스레드 안전 통신을 위젯에 다른 방법으로 수행 할 수 있습니까?
나는 이것을 고맙게 생각한다. 다행히도 pyinstaller와 함께 작동 할 것입니다 - 이것을 확인할 수 있습니까? – tjmgis
할 수 있습니다. PyInstaller를 사용하여 모든 것을 배포합니다. 작동하거나 도움이된다면 +1/우수 답변으로 표시하는 것이 좋습니다. Sidenote : PyInstaller https://github.com/multiphrenic/GooeyPi의 GUI 프런트 엔드도 만들었습니다. 현재 PyStructer (2.1)의 최신 개발 버전과 만 호환되며 stable 2.0은 호환되지 않습니다. 그러나 거기에 많은 버그 수정이 있기 때문에 대부분의 유스 케이스에 대해 2.1을 권장합니다. – pedram
나는 이것을 작동 시키려고 노력한 지난 몇 시간을 보냈다. 아직 wxpython 2.8의 현재 릴리스에는 운이 없다.그래서 나는 그것을 제거하고 pyinstaller의 개발 버전과 함께 개발 버전을 가지고, 내 동일한 스크립트를 사용하고 pubsub에 대한 import 문을 사용하고 pyinstaller를 실행했습니다. 그것은 그것을 발견하고 지금은 내 exe 작품. 도움을 주셔서 감사합니다 – tjmgis