Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533

Необычная проблема с pyinstaller

01.09.2020, 17:03. Показов 4809. Ответов 41

Студворк — интернет-сервис помощи студентам
Всем здравствуйте! Я тут немного, так сказать, встрял. Нагуглить не смог, поэтому спрашиваю тут, возможно кто-то сталкивался.

Итак, сделал я прогу с PyQt5 интерфейсом, с многопоточностью ну и другой всякой ерундой. Вроде всё работает. Сижу думаю, дайка я сделаю экзешник (тапками не бросайтесь, знаю идея - гов*но). Решил использовать для этих целей pyinstaller. Сделал я значиЦЦо .exe - файл, сижу довольный. Тут мой взор падает на cmd - окошко за моим красивейшим интерфейсом. Хм-м-м. Непорядок. Я открываю либу по pyinstaller, а там то всего и надо то прописать --noconsole. Прописал - программа запускает интерфейс но ничего не делает, кнопочки нажимаются, поля пишутся, а работать - не работает. А вот если не прописывать --noconsole то всё работает. Ребят, спасайте, я самостоятельно догнать не могу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.09.2020, 17:03
Ответы с готовыми решениями:

Проблема с pyinstaller
Приветствую, я установил pyinstaller через pip написало что всё установлено, а когда пишу pyinstall main.py то выдаёт ошибку...

Проблема с установкой Pyinstaller Версия Python 3.8.3
Проблема с установкой Pyinstaller Версия Python 3.8.3 ============================================ ...

Не работает PyInstaller (При установке PyInstaller не создаётся исполняемый файл)
День добрый всем программистам! :yahoo: Нужна помощь с библиотеками Python, а конкретно с PyInstaller :help: Создал небольшую...

41
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
02.09.2020, 15:41
Студворк — интернет-сервис помощи студентам
Damenikx, Если Windows - то TASKLIST и os.system.

Добавлено через 5 минут
Небольшой костыль который мне пришел в голову:
Python
1
2
3
4
5
6
import os
 
os.system("tasklist >> temp.txt")
with open("temp.txt", "rt") as file:
    print(*file.read().splitlines(), sep="\n")
os.remove("temp.txt")
1
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.09.2020, 15:49
Damenikx,
Судя по похожим темам на stackoverflow, проблема, как выше написал DmFat, в subrpocess.call: pythonw.exe, который используется при запуске в GUI режиме плохо (совсем? не) поддерживает взаимодействие с конcольными дескрипторами.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
02.09.2020, 15:53  [ТС]
DmFat, я уже думал на эту тему мне казалось этот костыль можно оставить под сааааааамый конец, но видимо выбора нет

Добавлено через 33 секунды
Garry Galler, сейчас попробую сделать из того, как предложил DmFat, отпишусь
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.09.2020, 15:57
Используй системные вызовы вместо запуска утилит, которым нужна консоль.
https://pypi.org/project/icmplib/
2
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
02.09.2020, 17:33  [ТС]
Garry Galler, спасибо, опробуем!

Добавлено через 23 минуты
Сделал, как предложил DmFat, но теперь главное эпилептикам не смотреть на экран, а то консоль появляется и исчезает сразу )

Добавлено через 10 минут
Garry Galler, ваш вариант тоже хорош, но вот только прав доступа нет и выкидывает ошибку

Добавлено через 16 минут
Как вариант ещё psutil подрубить.

Добавлено через 39 минут
psutil - оооооооооооооооооооооочень медленно работает чтобы забрать процесс, может есть вариант отключить (как-то) мигание этой консоли?
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.09.2020, 17:45
Цитата Сообщение от Damenikx Посмотреть сообщение
только прав доступа нет
А запустить exe от имени админа (правкой кнопкой мыши)?
Вроде бы еще pyinstaller имеет директиву соответствующую...
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
02.09.2020, 19:15  [ТС]
Garry Galler, проблема в том, что там где эта программа будет потом находится, я не могу запустить её от имени администратора((

Добавлено через 50 секунд
Pyinstaller я может и могу запустить, а вот библиотека не хочет работать без прав админа, я имею ввиду: ICMPlib

Добавлено через 28 секунд
Как только запускаешь программу (ещё не в exe) - сразу ошибка.

Добавлено через 7 минут
Итак, чего же я достиг! DmFat, дал мне нормального подсрульника и я давай всё быстренько переделывать, спасибо ему за это огромное

Garry Galler, подтолкнул на мысль использовать сторонние либы и я с помощью psutil - всё таки достиг того, что теперь получаю количества памяти, которое кушает приложение при этом без всяких консолей и морганий (это в .exe).

Осталось только разобраться с получение ответа на пинг ip-адреса.

Добавлено через 40 минут
Хорошо, если Магамед не идёт к горе...

Я с таким не сталкивался, но! ВДРУГ! Есть такая возможность, чтобы определённую часть кода, работало от админа?
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
03.09.2020, 01:03
Цитата Сообщение от Damenikx Посмотреть сообщение
чтобы определённую часть кода, работало от админа?
А почитайте... А нет, всё не так легко, на foobar посылать нельзя.. Что же, прилеплю кусок ответа сюда:
Следующий пример основан на превосходной работе Мартина де ла Фуенте Сааведры и принятом ответе. В частности, введены два перечисления. Первый позволяет легко определить способ открытия программы с повышенными правами, а второй помогает, когда необходимо легко идентифицировать ошибки. Обратите внимание, что если вы хотите, чтобы все аргументы командной строки были переданы новому процессу, sys.argv[0] вероятно, следует заменить вызовом функции: subprocess.list2cmdline(sys.argv).

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#! /usr/bin/env python3
import ctypes
import enum
import sys
 
# Reference:
# msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx
 
 
# noinspection SpellCheckingInspection
class SW(enum.IntEnum):
    HIDE = 0
    MAXIMIZE = 3
    MINIMIZE = 6
    RESTORE = 9
    SHOW = 5
    SHOWDEFAULT = 10
    SHOWMAXIMIZED = 3
    SHOWMINIMIZED = 2
    SHOWMINNOACTIVE = 7
    SHOWNA = 8
    SHOWNOACTIVATE = 4
    SHOWNORMAL = 1
 
 
class ERROR(enum.IntEnum):
    ZERO = 0
    FILE_NOT_FOUND = 2
    PATH_NOT_FOUND = 3
    BAD_FORMAT = 11
    ACCESS_DENIED = 5
    ASSOC_INCOMPLETE = 27
    DDE_BUSY = 30
    DDE_FAIL = 29
    DDE_TIMEOUT = 28
    DLL_NOT_FOUND = 32
    NO_ASSOC = 31
    OOM = 8
    SHARE = 26
 
 
def bootstrap():
    if ctypes.windll.shell32.IsUserAnAdmin():
        main()
    else:
       # noinspection SpellCheckingInspection
        hinstance = ctypes.windll.shell32.ShellExecuteW(
            None,
            'runas',
            sys.executable,
            subprocess.list2cmdline(sys.argv),
            None,
            SW.SHOWNORMAL
        )
        if hinstance <= 32:
            raise RuntimeError(ERROR(hinstance))
 
 
def main():
    # Your Code Here
    print(input('Echo: '))
 
 
if __name__ == '__main__':
    bootstrap()
Добавлено через 6 минут
Я пока не закрываю ту вкладку, если будет интересно, могу скинуть в пм
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
03.09.2020, 10:31  [ТС]
Alli_Lupin, subprocess использовать нельзя, ибо затем мы перегоняем в exe с параметром --noconsole, а значит не сработает)

Добавлено через 1 час 45 минут
Всё плохо. Вчера я радостный через psutil думал что всё уже почти готово, а оказывается нет. Через psutil получилось получить количество потребляемой памяти процессом который непосредственно на компьютере, а вот как это сделать на компьютере, который в сети? Есть тут профи по psutil?

Добавлено через 5 минут
Может есть ещё какие то способы без subprocess и tasklist. Пофиг на отсутствие админа.
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
03.09.2020, 10:47
Damenikx, что-то странное вы делаете)) Такие вещи безагентским спомобом собирать сложно и не безопасно.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
03.09.2020, 10:53  [ТС]
Alli_Lupin, я прекрасно понимаю, но особого нет(
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
03.09.2020, 11:00
Damenikx, вот про такое почитайте. WMI используют многие продукты, которые как раз для мониторинга предназначены
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
03.09.2020, 11:02  [ТС]
Alli_Lupin, WMI очень криво работает в многопоточных программах, уже смотрел)
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
03.09.2020, 11:20
Damenikx, о, а расскажите мне, зачем вам многопоточность при получении памяти на машине?
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
03.09.2020, 11:55  [ТС]
Alli_Lupin, а вы гляньте на первой странице. Я там всё объяснил код даже выложил.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.09.2020, 17:09
Damenikx,
psutil не выполняет удаленный мониторинг.
Можно почитать про paramiko или Fabric с ssh.

Добавлено через 1 минуту
P.S. Мне кажется или текущая тема уже не отвечает заголовочной?
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
03.09.2020, 17:48
Цитата Сообщение от Damenikx Посмотреть сообщение
Я там всё объяснил
вы много чего объяснили, но вопрос "Зачем многопоточность для снятия одной метрики на удалённом компьютере?" не нахожу)
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.09.2020, 10:04  [ТС]
Alli_Lupin, хотя-бы для того чтобы GUI не зависал
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
04.09.2020, 10:14
Damenikx, будет на выходных время - посмотрю)
0
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
05.09.2020, 22:09
Ну. Как я и предполагал, всё прекрасно работает. По крайней мере память получает со всех машин домена.
Damenikx, держите:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# -*- coding: 866 -*-
import wmi
import subprocess
import threading
import pythoncom
 
 
def used_memory():
    # Get used memory
    ip = '192.168.32.200'
    username = 'ххх'
    password = '123'
    subprocess.call(['ping', ip], shell=True)
    pythoncom.CoInitialize()
    w = wmi.WMI(ip, user=username, password=password)
    result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process")
    return result
 
 
def main():
    r = used_memory()
    for i in range(0, len(r)):
        print(r[i].Name, r[i].WorkingSet)
 
 
t = threading.Thread(target=main)
t.start()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2020, 22:09

Проблема с компиляцией скрипта pyinstaller
Есть статья на хабре https://habr.com/ru/post/575100/, я попытался ее скомпилировать, но постоянно пишет что не хватает модулей. Но модули...

Проблема с создание .exe файла с использованием pyinstaller
Привет, я пытаюсь создать .exe файл, который можно передать на любой компьютер и запустить, даже на тот, в котором нет интерпретатора...

Проблема с библиотекой plyer при создании исполняемого файла с использованием pyinstaller
Добрый день. Я пытаюсь создать уведомление в Windows, используя библиотеку Plyer. Все отлично работает, когда скрипт Python запущен(.py)....

Необычная проблема с компьютером
Собрал новый компьютер. Материнская плата ASUS a320m-e Процессор AMD ryzen 3 2200g Оперативная память 8гб блок питания be quiet...

Необычная проблема с виндовс
привет всем! есть величайшая проблема. 3 дня назад на раб. стол стала выкидываться табличка ерор свхост с кодом, не убиралась ни как!...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru