Python으로 IRC 봇을 작성하고 있습니다.
리눅스와 윈도우용 독립 실행형 바이너리를 만들고 싶습니다. 그리고 주로 봇이 시작될 때 콘솔 창이 숨겨지고 사용자가 창을 볼 수 없기를 바랍니다.
이를 위해 무엇을 할 수 있나요?
확장자를 '.pyw'로 저장하기만 하면 됩니다. 이렇게 하면 콘솔 창이 열리지 않습니다.
Windows 시스템에는 "실행 모드"라는 개념이 없습니다. 파이썬 인스톨러는 .py 파일을 자동으로 python.exe와 연결하여 파이썬 파일을 더블클릭하면 스크립트로 실행되도록 합니다. 확장자는 .pyw일 수도 있으며, 이 경우 일반적으로 표시되는 콘솔 창이 표시되지 않습니다.
Linux에서는 그냥 실행하면 됩니다. Windows에서는 pythonw 실행 파일을 사용해야 합니다.
댓글의 질문을 이해했다면 명령줄에서 봇을 시작한 명령 창을 나중에 사라지게 만드는 방법을 묻는 건가요?
$ nohup mypythonprog &
C:/> start pythonw mypythonprog
맞는 것 같습니다. 어쨌든 이제 터미널을 닫을 수 있습니다.
유닉스 시스템(Linux, macOS, BSD 포함)에서 ##
nohup mypythonprog &를 사용하면 프로세스를 중단하지 않고 터미널 창을 닫을 수 있습니다. 클라우드에서 실행 중이고 중단된 셸 프로세스를 남기고 싶지 않은 경우
exit`를 실행할 수도 있습니다.
확장자가 .pyw
인 프로그램을 저장하면 이제 pythonw.exe
로 열립니다. 셸 창이 없습니다.
예를 들어, foo.py
가 있다면 foo.pyw
로 이름을 바꿔야 합니다.
All you want to do 는 파이썬 스크립트를 운영할 경우 windows 컴퓨터에 설치되어 있는 변환 & # 39 의 파이썬 인터프리터 alphastor 저장된 스크립트입니다 .py& # 39;; # 39, & # 39 를 .pyw&. 이 어떻게해야합니다 의심하게 된다.
다음 예제는 사용하여 만든 단순 파이썬 gui 트킨터:
from distutils.core import setup
import py2exe
setup (console = ['tkinter_example.pyw'],
options = { 'py2exe' : {'packages':['Tkinter']}})
&Quot 변경하십시오 console"; 위의 코드에서 위해 windows" ";).
from distutils.core import setup
import py2exe
setup (windows = ['tkinter_example.pyw'],
options = { 'py2exe' : {'packages':['Tkinter']}})
이렇게 하면 전용 GUI 및 콘솔 창 트킨터 열어보려면 생성할지 없습니다.
이렇게 하면 hide your 콘솔이군요. 이 코드에서 콘솔이 숨기기 위해 처음에는 구현하십시오 흐름선 첫 시작.
import win32gui, win32con
The_program_to_hide = win32gui.GetForegroundWindow()
win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)
일부 추가 정보. # 39, ll 필요한 경우 that& win32gui 솔루션이므로 모센 하다디 앞서 올린 이 스레드할:
파이썬 361, win32gui vmware. &. win32con 속하지 않는 파이썬 표준 라이브러리. 이를 사용할 수 있습니다, pywin32 패키지를 설치해야 합니다. 등을 통해 수 있게 됐다.
더 많은 정보는 pywin32 패키지는 http://support. 배경 https://stackoverflow.com/questions/6624672/how-to-use-the-win32gui-module-with-python.
또한 동시에 적용하십시오 판단에 따라 창 닫기 때문에 실수로 모든 창을 포그라운드로 닫으십시오 할 때, 결의안은 다음과 같은 계열에 따라 연장될 수도 있다.
try :
import win32gui, win32con;
frgrnd_wndw = win32gui.GetForegroundWindow();
wndw_title = win32gui.GetWindowText(frgrnd_wndw);
if wndw_title.endswith("python.exe"):
win32gui.ShowWindow(frgrnd_wndw, win32con.SW_HIDE);
#endif
except :
pass