Ошибка при запуске скрипта
Скрипт легко запускается в PyCharm'е и его терминале. Однако, если попытаться запустить скрипт через cmd по команде
C:\Users\Home-PC\PycharmProjects\box_vis\venv\bin\python.exe C:/Users/Home-PC/PycharmProjects/box_vis/visual.py - выводится ошибка
Traceback (most recent call last):
File "C:\Users\Home-PC\PycharmProjects\box_vis\visual.py", line 78, in <module>
main = Main()
File "C:\Users\Home-PC\PycharmProjects\box_vis\visual.py", line 21, in __init__
self.builder.add_from_file(gladeFile)
gi.repository.GLib.GError: g-file-error-quark: Не удалось открыть файл «res/csgo.glade»: No such file or directory (4)
Хотя файл там присутствует и спокойно читается
сам код
import threading
import gi
import os
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GLib
sandboxie_path = "C:/Program Files/Sandboxie-Plus/Start.exe" # Путь к Start.exe
Steam_path = "C:/Program Files (x86)/Steam/steam.exe" # Путь к steam.exe
tn_host = "127.0.0.1"
port_list = ["2121", "2122", "2123", "2124", "2125", "2126"]
server_list = ["85.88.162.140:27031"]
pause = 15
class Main:
def __init__(self):
gladeFile = "res/csgo.glade"
self.builder = Gtk.Builder()
self.builder.add_from_file(gladeFile)
self.builder.connect_signals(self)
window = self.builder.get_object("main")
window.connect('delete-event', Gtk.main_quit)
window.show()
def red_mark(self):
for num in range(1, 7):
self.builder.get_object(f"status_label_{num}").set_markup("<span background='#FA6DA4' "
"foreground='#000000'>OFF</span>")
def start_box(self, box_num, tn_port, server, sandbox_path, steam_path):
os.popen(f'"{sandbox_path}" /box:{box_num} "{steam_path}" -applaunch 730 -netconport {tn_port} -novid '
f'-window -nosound +fps_max 30 -w 640 -h 480 +left connect {server}')
self.builder.get_object(f"status_label_{box_num}").set_markup("<span background='#76EE98' "
"foreground='#000000'>ON</span>")
self.builder.get_object("progress_bar").set_fraction(box_num / 6)
self.builder.get_object("log_lbl").set_markup(f'Box{box_num} запускается\n')
# def empt(self, num):
# self.builder.get_object("progress_bar").set_fraction(num / 6)
# self.builder.get_object("log_lbl").set_markup(f'Box{num} не был выбран\n')
# print("d")
def test(self):
print('ff')
def check(self, num):
return self.builder.get_object(f"check_btn_{num}").get_active()
def start_btn(self, widget):
if not self.check(1) and not self.check(2) and not self.check(3) and not self.check(4) and not self.check(5) \
and not self.check(6):
pass
else:
counter1 = False
counter2 = False
for box in range(1, 7):
if self.check(box) and not counter1:
counter1 = True
self.start_box(box, port_list[box - 1], server_list[0], sandboxie_path, Steam_path)
elif self.check(box) and counter1:
threading.Timer(pause, self.start_box,
(box, port_list[box - 1], server_list[0], sandboxie_path, Steam_path)).start()
if not self.check(box) and not counter2:
counter2 = True
self.test()
elif not self.check(box) and counter2:
GLib.timeout_add_seconds(3, self.test)
# threading.Timer(3, self.test).start()
if __name__ == '__main__':
main = Main()
main.red_mark()
Gtk.main()