Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3494 posts.

Web » Можно ли поставить таски на паузу? (asyncio) » Фев. 6, 2018 08:15:44

Всем привет! Имеется такой код:

 from aiohttp import web
import asyncio
async def send_msg1(app):
	while True:
		for ws in app['admin_sockets']:
			await ws.send_str('msg1')
		await asyncio.sleep(10)
async def send_msg2(app):
	while True:
		for ws in app['admin_sockets']:
			await ws.send_str('msg2')
		await asyncio.sleep(20)
async def ws_handler(request):
	ws = web.WebSocketResponse()
	await ws.prepare(request)
	is_admin = request.path.startswith('/ws/admin')
	a_socks = request.app['admin_sockets']
	u_socks = request.app['user_sockets']
	if is_admin:
		a_socks.append(ws)
	else:
		u_socks.append(ws)	
	try:
		async for msg in ws:
			await ws.send_str(msg.data)
	except Exception as e:
		pass
	finally:		
		if is_admin:
			a_socks.remove(ws)
		else:
			u_socks.remove(ws)
	return ws
app = web.Application()
app.router.add_get('/ws', ws_handler)
app.router.add_get('/ws/admin', ws_handler)
app['admin_sockets'] = []
app['user_sockets'] = []
loop = asyncio.get_event_loop()
loop.create_task(send_msg1(app))
loop.create_task(send_msg2(app))

Задачи send_msg1 и send_msg2 будут вызывать тяжеловесные функции, поэтому не хотелось бы, чтобы они работали вхолостую. Можно ли как-то их ставить на паузу, если admin_sockets пустой, и возобновлять, если в admin_sockets появится хотя бы один сокет? Спасибо.

Web » webdriver можно ли подключиться ? » Фев. 4, 2018 14:03:20

Вызываю экземпляр сего объекта:

Br = webdriver.Chrome()
Br.get('http/…')

Открывается окно с нужной страницей - все ок. Если его не закрыть Br.Quit - ом то окошко остается висеть. Вопрос:
Можно ли как то подключиться к этому висящему окну при следующем запуске кода, чтобы заново не создавать новый экземпляр ?

Центр помощи » Задача "Проходной балл" с Курсеры: взгляд изнутри. » Фев. 2, 2018 13:56:22

Привет! Есть два решения и задача:

Для поступления в вуз абитуриент должен предъявить результаты трех экзаменов в виде ЕГЭ, каждый из них оценивается целым числом от 0 до 100 баллов. При этом абитуриенты, набравшие менее 40 баллов (неудовлетворительную оценку) по любому экзамену из конкурса выбывают. Остальные абитуриенты участвуют в конкурсе по сумме баллов за три экзамена.

В конкурсе участвует N человек, при этом количество мест равно K. Определите проходной балл, то есть такое количество баллов, что количество участников, набравших столько или больше баллов не превосходит K, а при добавлении к ним абитуриентов, набравших наибольшее количество баллов среди непринятых абитуриентов, общее число принятых абитуриентов станет больше K.

Формат ввода

Программа получает на вход количество мест K. Далее идут строки с информацией об абитуриентах, каждая из которых состоит из имени (текстовая строка содержащая произвольное число пробелов) и трех чисел от 0 до 100, разделенных пробелами.

Используйте для ввода файл input.txt с указанием кодировки utf8.

Формат вывода

Программа должна вывести проходной балл в конкурсе. Выведенное значение должно быть минимальным баллом, который набрал абитуриент, прошедший по конкурсу.

Также возможны две ситуации, когда проходной балл не определен.

Если будут зачислены все абитуриенты, не имеющие неудовлетворительных оценок, программа должна вывести число 0.

Если количество абитуриентов, имеющих равный максимальный балл больше чем K, программа должна вывести число 1.

Используйте для вывода файл output.txt с указанием кодировки utf8.

Тест 1
Входные данные:
5
Иванов Сергей 70 70 70
Сергеев Петр 100 100 0
Петров Василий 70 60 70
Васильев Андрей 70 60 70
Андреев Денис 100 30 100
Денисов Роман 50 50 50
Романов Иван 60 70 70
Ким Чен Ир 50 50 50
Ким Ир Сен 40 40 40

Вывод программы:
200

Тест 2
Входные данные:
1
Иванов Сергей 40 40 40
Сергеев Петр 100 100 39

Вывод программы:
0

Тест 3
Входные данные:
1
Иванов Сергей 60 60 60
Сергеев Петр 100 40 40

Вывод программы:
1

Рабочее решение:

 myFile = open("input.txt", "r", encoding="utf8")
k = int(myFile.readline())
myList = []
for line in myFile:
    newLine = line.split()
    if int(newLine[-1]) >= 40 and int(newLine[-2]) >= 40 \
            and int(newLine[-3]) >= 40:
        myList.append(newLine)
myFile.close()
myList.sort(key=lambda a: int(a[-1]) + int(a[-2]) + int(a[-3]))
myList.reverse()
konk = []
for i in myList:
    sum = int(i[-1]) + int(i[-2]) + int(i[-3])
    konk.append(sum)
n = len(konk)
 
 
def konkurs(n, k, konk):
    if n <= k:
        return 0
    elif konk[k] == konk[0]:
        return 1
    for i in range(k, 0, -1):
        if konk[i] < konk[i - 1]:
            return konk[i - 1]
 
 
print(konkurs(n, k, konk))

Мое решение, без реверса, т.е. цикл в функции считает в порядке возрастания индекса:

 fileInput = open('input.txt', 'r', encoding='utf8')
scoreList = []
k = int(fileInput.readline())
for line in fileInput:
    i = line.split()
    if int(i[-1]) >= 40 and int(i[-2]) >= 40 and int(i[-3]) >= 40:
        scoreList.append(int(i[-1]) + int(i[-2]) + int(i[-3]))
fileInput.close()
lenScoreList = len(scoreList)
scoreList.sort()
 
 
def minScore(n, k, sL):
    if n <= k:
        return 0
    elif sL[-k] == sL[n + 1]:
        return 1
    for i in range(-k, -1):
        if sL[i] < sL[i + 1]:
            return sL[i + 1]
 
 
print(minScore(lenScoreList, k, scoreList))

Проблема: во втором решении, алгоритм цикла в функции, вроде, полностью противоположен решению № 1, но такой код проходит только 1-3 тесты. Я решил задачу иначе, с помощью кортежей в списке, но хотелось бы разобраться в этом варианте. Ах да, во втором варианте я не использовал метод ‘list.reverse()’.

Python для новичков » Существует ли ограничения размерности у DataFrame? » Фев. 1, 2018 20:40:13

При исполнении простейшего кода
new_data = pd.DataFrame(index =index, columns =columns)
new_data = new_data.fillna(0.0)

и при значении index = 10, columns = 100 000 DataFrame создается,
а при index = 100 000, columns = 100 000 DataFrame выдает ошибку MemoryError.

Какие максимальные значения могут принимать index и columns ?

GUI » Как переместить курсор в начало поля LineEdit при маске » Янв. 31, 2018 19:51:28

Прошу помощи.
Использую маску в поле LineEdit. При установке курсора в это поле, он устанавливается в конец маски.
Как его переместить в начало поле ввода?

Python для новичков » изучение python » Янв. 31, 2018 17:41:19

где лучше всего изучать python?
какие лучшие учебники/видеоуроки/ИТД
Спасибо заранее

Python для новичков » Помогите полнейшему навичку разобраться с чего начать и как сделать » Янв. 26, 2018 14:13:08

Добрый день!

Сразу прошу прошение за глупость вопросов, никогда ранее программированием не занимался и вот только сейчас в силу обстоятельств начал изучать. Так что если что помидорами не кидайтесь.
Так вот Поставили передо мной задачу , написать небольшую программу для управления прибором и визуальным отображением данных от этого прибора. Прибор висит на COM порте и шлет каждые 0,5 секунды посылки из 4 чисел (3 первых чисел это показания датчиков, числа с запятой. и 1 последнее число показывает состояние включен или выключен определенный блок прибора ) и одновременно слушает порт на предмет команд управления им. Команд 6 и состоят они из 1 буквы. По стечению обстоятельств решил попробовать сделать (изучить) на Python3 .
Как я понимаю нужно сделать что то с несколькими процессами, один процесс слушает порт и записывает полученные значения в переменные, другой процесс читает переменные, строит визуализацию(желательно график) и оправляет команды в порт для управления.

Вопрос, как мне это все реализовать? С какого бока подходит и с чего начинать? Информации море и в ней теряешься
Сделать надо как всегда вчера

Python для новичков » События Linux и мое приложение » Янв. 25, 2018 15:22:45

Всем ку!) Не знаю, как грамотно выразить в технических терминах, скажу на обывательском языке, чего хочу. Допустим, создался/отвалился юникс-сокет, установилось/разорвалось tcp-соединение, запустился/остановился нужный мне демон и т.д., нужно, чтобы мое приложение перехватывало/наблюдало эти события (и далее передавало на веб-страницу на другой машине через веб-сокет, но это так, к слову). В какую сторону копать? Интересует именно событийная схема, без необходимости периодического перечитывания логов, запуска баш-команд и пр. Возможно ли это сделать штатными средствами python и linux, без привлечения стороннего тяжеловесного софта?

Django » Не стартует gunicorn как демон » Янв. 24, 2018 23:28:17

 systemctl status gunicorn
Сам демон
 [Unit]                                                                                                                                                      
  2 Description=gunicorn daemon
  3 After=network.target
  4  
  5 [Service]
  6 User=root
  7 Group=www-data
  8 WorkingDirectory=/root/projects/chat
  9 ExecStart=/root/projects/chat/chat_env/bin/gunicorn --workers 3 --bind unix:/root/projects/chat/chat.sock chat.wsgi:application
 10  
 11 [Install]
 12 WantedBy=multi-user.target
 13  
И ошибка
 Jan 24 21:16:02 localhost gunicorn[4856]:   File "/root/projects/chat/chat_env/lib/python3.5/site-packages/gunicorn/util.py", line 352, in import_app
Jan 24 21:16:02 localhost gunicorn[4856]:     __import__(module)
Jan 24 21:16:02 localhost gunicorn[4856]: ImportError: No module named 'chat.wsgi'
 tree -L 3
из папки /root/projects/chat

 ├── chat
  3 │   ├── chat
  4 │   │   ├── __init__.py
  5 │   │   ├── __pycache__
  6 │   │   ├── settings.py
  7 │   │   ├── urls.py
  8 │   │   └── wsgi.py
  9 │   ├── manage.py
 10 │   └── static
 11 │       └── admin
 12 ├── chat_env
 13 │   ├── bin
 14 │   │   ├── activate
 15 │   │   ├── activate.csh
 16 │   │   ├── activate.fish
 17 │   │   ├── activate_this.py
 18 │   │   ├── django-admin
 19 │   │   ├── django-admin.py
 20 │   │   ├── easy_install
 21 │   │   ├── easy_install-3.5
 22 │   │   ├── gunicorn
 23 │   │   ├── gunicorn_paster
 24 │   │   ├── pip
 25 │   │   ├── pip3
 26 │   │   ├── pip3.5
 27 │   │   ├── __pycache__
 28 │   │   ├── python -> python3
 29 │   │   ├── python3
 30 │   │   ├── python3.5 -> python3
 31 │   │   ├── python-config
 32 │   │   └── wheel
 33 │   ├── include
 34 │   │   └── python3.5m -> /usr/include/python3.5m
 35 │   ├── lib
 36 │   │   └── python3.5
 37 │   └── pip-selfcheck.json
Где я туплю?

Python для новичков » Pymssql windows авторизация » Янв. 21, 2018 13:23:38

Всем привет. Python только начал изучать.
Интересует связь с базой данных, желательно не через ОDBC
Аутентификация Windows.
Пишу вот что:

# coding: utf

import pymssql
print('Начали')
db = pymssql.connect(host = ‘192.168.0.100’, trusted=True,database='database')
print('соединились')
query = db.cursor()
…..
Дальше несущественно- потому-что не выполняется.
Ошибки не выкидываются.
Делаю по шагам в Idle.
Idle пишет: restart

Что я делаю неправильно?

Python для новичков » Записываем емаил в текстовый файл » Янв. 20, 2018 18:53:12

Дошел до того, что научился доставать письма из почтового ящика и запихивать в файл(правда не через pop как планировалось, а через IMAP). И запихивать в файл. Но есть проблемка. Текст получается со всякими лишними тегами. (прим: b'<data>\r\n<items>\r\n<item name=“item1”>)

Вообщем совет нужен, как избавится от лишних тегов?

Пример кода здесь и во вложении:
 import os 
import imaplib
import email
import base64
import email.message
import base64
imaplib.IMAP4.debug = imaplib.IMAP4_SSL.debug = 1
con = imaplib.IMAP4_SSL('imap.mail.ru',993)
con.login('pythonsutest@mail.ru','ktozdes90')
con.select()
typ, data = con.search(None, 'ALL')
print(data)
for num in data[0].split():
    typ, data = con.fetch(num, '(RFC822)')
    print(num)
    msg = email.message_from_bytes(data[0][1])
    print(msg['Subject'])
    msg2 = ascii(msg)
    print(msg2)
    my_file = open("text.txt", "a")
    my_file.close()
msg3 = ""
if msg.is_multipart():
            for part in msg.get_payload():
                if part.get_content_maintype() == 'text' and part.get('Content-Disposition') == None:
                    msg_body = part.get_payload(decode=1)
                    msg3 = ascii(msg_body)
                    my_file = open("text.txt", "a")
                    my_file.write(ascii(msg_body))
                    my_file.close()
print(msg3)
    
con.close()
con.logout()

Django » django2 server какой лучше? » Янв. 19, 2018 07:36:02

Интересно узнать мнение форумчан
какой web сервер нынче используют?

Мы используем связку nginx + django

Обсудим, почему и какими способами организуете вы сервер джанго, в ваших проектах?

Django » django2 ImportError: No module named 'polls' » Янв. 18, 2018 11:06:00

Здравствуйте
Установил django2 для тестов. Создал админку, включил модули - все работает.
решил создать модуль polls по мануалу с оф.сайта

протестировал модуль, все работает.

и удалил его физически, с диска

теперь при запуске сервера выдает ошибку:

root@p472132home/fixit# python3 manage.py runserver
Performing system checks…

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7fe170e3da60>
Traceback (most recent call last):

ImportError: No module named ‘polls’


пробовал миграцию, пробовал python3 manage.py sqlsequencereset polls (вроде как удаляет модули из базы) результатов ноль

Как можно решить проблему?


python3 manage.py check polls выводит

Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/django/apps/registry.py”, line 147, in get_app_config
return self.app_configs
KeyError: ‘polls’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “manage.py”, line 10, in <module>
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py”, line 371, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py”, line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”, line 288, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.5/dist-packages/django/core/management/base.py”, line 335, in execute
output = self.handle(*args, **options)
File “/usr/local/lib/python3.5/dist-packages/django/core/management/commands/check.py”, line 44, in handle
app_configs =
File “/usr/local/lib/python3.5/dist-packages/django/core/management/commands/check.py”, line 44, in <listcomp>
app_configs =
File “/usr/local/lib/python3.5/dist-packages/django/apps/registry.py”, line 154, in get_app_config
raise LookupError(message)
LookupError: No installed app with label ‘polls’.


и после этого, я понял
что в urls.py
не удалил строчку с установленным приложением .

после ее удаления все заработало.

Спасибо.

Центр помощи » Помогите заставить GSM модем работать в GPRS » Янв. 17, 2018 19:37:00

Есть модем IRZ TG-21 c радиомодулем Telit GL868-dual-V3 внутри и интерпретатор версии 1.5.2
Необходимо что бы модем после того как включился (т.е. подали питание на него):
• зарегистрировался в сети GSM;
• поднял GPRS, применил необходимые сетевые настройки (открыть порт);
• сделал прозрачный канал передачи данных для устройства (счетчик электроэнергии, например, подключенный к RS485 модема) для опроса сторонним ПО.
Используемые SIM карты с арендованным APN - corp.chs имеют статический внутренний IP-адрес.
Попытки сделать это самостоятельно не приводят к положительному результату. Скрипт написан, выполняется однократно. Далее сокет закрывается.
Готов оплатить работу

Центр помощи » Проблема с построиением модели с использованием полиномиальной функции » Янв. 15, 2018 00:00:05

Собственно делаю лабораторную работу, но не хватает знаний питона (ровно как и знаний в программировании)

Итак текст лабораторной выглядит следующим образом.
1) Написать программу, которая разделяет исходную выборку на обучающую и тестовую (training set, validation set, test set)
2) С использованием библиотеки scikit-learn (http://scikit-learn.org/stable/) обучить модель линейной регрессии по обучающей выборке (пример: http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py)
3) Построить модель с использованием полиномиальной функции (пример: http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html#sphx-glr-auto-examples-model-selection-plot-underfitting-overfitting-py). Построить графики зависимости ошибки от степени полиномиальной функции.
И вот с третьим проблемы.

Код программы.
 from sklearn import linear_model
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
from sklearn.model_selection import cross_val_score
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
    	подкл выборку
df = pd.read_table ("tic/ticdata2000.txt")
cols = ['Col']
x_train = pd.read_table ("tic/ticdata2000.txt", header = None).iloc [0:4000, 0:85]
x_test = pd.read_table ("tic/ticeval2000.txt", header = None)
y_train = df['Col'] = df.iloc[0:4000, 84]
y_test = pd.read_table ("tic/tictgts2000.txt", header = None)
	обучение выборки
regression = linear_model.LinearRegression()
regression.fit (x_train, y_train)
	Предсказание на основе тестового набора
train_predict = regression.predict (x_train)
print('Коэффициенты: \n', regression.coef_)
print("Cреднеквадратичная ошибка: %.2f" % mean_squared_error(y_train, train_predict))
print('Оценка отклонения: %.2f' % r2_score(y_train, train_predict))
	Проверка точности модели по тестовой выборке и запись в файл¶
columns = ['y_pred']
y_pr = pd.DataFrame(train_predict)
y_test = y_test.reset_index(drop = True)
res = pd.concat([y_pr, y_test], axis=1)
res.to_csv("result.txt", index = False)
	[b]Построение полинома[/b]
degrees = [1,2,3]
err = [1,2,3]
for i in range(len(degrees)):
    polynomial_features = PolynomialFeatures(degree = degrees[i],
                                             include_bias = False)
    linear_regression = LinearRegression()
    pipeline = Pipeline([("polynomial_features", polynomial_features),
                         ("linear_regression", linear_regression)])
    pipeline.fit(x_train, y_train)
    scores = cross_val_score(pipeline, x_train, y_train,
                             scoring="neg_mean_squared_error")
    predict_y = pipeline.predict(x_test)
    err[i] = -scores.mean()
    print("\nСтепень: {}\nСреднеквадратичная ошибка = {}(+/- {})".format(degrees[i], -scores.mean(),
                                               scores.std()))
    print('Показатель отклонения: %.3f' % r2_score(y_test, predict_y))

И вот, собственно при построении полинома вылетает ошибка

 MemoryError                               Traceback (most recent call last)
<ipython-input-7-4a868cb24d24> in <module>()
     10     pipeline = Pipeline([("polynomial_features", polynomial_features),
     11                          ("linear_regression", linear_regression)])
---> 12     pipeline.fit(x_train, y_train)
     13     scores = cross_val_score(pipeline, x_train, y_train,
     14                              scoring="neg_mean_squared_error")
/usr/local/lib/python3.5/dist-packages/sklearn/pipeline.py in fit(self, X, y, **fit_params)
    257         Xt, fit_params = self._fit(X, y, **fit_params)
    258         if self._final_estimator is not None:
--> 259             self._final_estimator.fit(Xt, y, **fit_params)
    260         return self
    261 
/usr/local/lib/python3.5/dist-packages/sklearn/linear_model/base.py in fit(self, X, y, sample_weight)
    487         X, y, X_offset, y_offset, X_scale = self._preprocess_data(
    488             X, y, fit_intercept=self.fit_intercept, normalize=self.normalize,
--> 489             copy=self.copy_X, sample_weight=sample_weight)
    490 
    491         if sample_weight is not None:
/usr/local/lib/python3.5/dist-packages/sklearn/linear_model/base.py in _preprocess_data(X, y, fit_intercept, normalize, copy, sample_weight, return_mean)
    166 
    167     X = check_array(X, copy=copy, accept_sparse=['csr', 'csc'],
--> 168                     dtype=FLOAT_DTYPES)
    169     y = np.asarray(y, dtype=X.dtype)
    170 
/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
    400                                       force_all_finite)
    401     else:
--> 402         array = np.array(array, dtype=dtype, order=order, copy=copy)
    403 
    404         if ensure_2d:
MemoryError:
как от неё избавиться? направьте на пусть истинный!

Сама выборка бралась отсюда

Python для новичков » Проблема с sklearn. » Янв. 14, 2018 12:58:27

Здравствуйте, поставил Python Anaconda3. Через сonda.exe установил NumPy, SciPy, sklearn. Обновил и запускаю spyder. Выполняю файл с кодом:
from sklearn import datasets
faces = datasets.fetch_olivetti_faces()

Получаю:
runfile('CUsers/pnn_d/.spyder-py3/temp.py', wdir='CUsers/pnn_d/.spyder-py3')
Traceback (most recent call last):

File “<ipython-input-3-b35389b4b4a0>”, line 1, in <module>
runfile('CUsers/pnn_d/.spyder-py3/temp.py', wdir='CUsers/pnn_d/.spyder-py3')

File “C:\Users\pnn_d\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”, line 705, in runfile
execfile(filename, namespace)

File “C:\Users\pnn_d\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”, line 102, in execfile
exec(compile(f.read(), filename, ‘exec’), namespace)

File “CUsers/pnn_d/.spyder-py3/temp.py”, line 2, in <module>
datasets.fetch_olivetti_faces()

File “C:\Users\pnn_d\Anaconda3\lib\site-packages\sklearn\datasets\olivetti_faces.py”, line 129, in fetch_olivetti_faces
faces = joblib.load(filepath)

File “C:\Users\pnn_d\Anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py”, line 578, in load
obj = _unpickle(fobj, filename, mmap_mode)

File “C:\Users\pnn_d\Anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py”, line 508, in _unpickle
obj = unpickler.load()

File “C:\Users\pnn_d\Anaconda3\lib\pickle.py”, line 1048, in load
raise EOFError

EOFError

Подскажите, пожалуйста, что я сделал не так?

Python для экспертов » suds вызова метода с передачей наименования параметра » Янв. 12, 2018 11:05:34

Всем привет. Подскажите как в питоне в soap запросе передать наименование параметра, на перле это делается так
 my @result = $service->method(SOAP::Data->name('MyDate')->value('Value'));
на перле работает
Пробую на питоне через suds сделать так:
 result=client.service.method({'MyDate':'Value'})
На питоне не работает. Подскажите пожалуйста в чем может быть проблема?

Python для новичков » Анализ репозитория, используя REST API GitHub. » Янв. 12, 2018 09:28:54

Добрый день. Как найти количество открытых и закрытых pull requests. (например тут https://github.com/fastlane/fastlane/pulls)
Желательно пользуясь только стандартными библиотеками Python

Python для новичков » Как запустить 30 скриптов с разными конфигами в Анаконда? » Янв. 12, 2018 02:33:33

Есть скрипт, успешно он запускается только через Anaconda Prompt, через cmd запустить не получается.
Формат запуска вот такой:
fauxmo -c config.json
Проблема в том что вот таких копий запусков, но только с разными конфигами нужно сделать около 30 шт. Скрипт открывает порт, слушает и отвечает когда на него обращаются т.е. он постоянно должен висеть в памяти. Если запускать руками, то консольное окно постоянно должно висеть. Замучался руками после каждого ребута их запускать. Но у меня не получается написать батник, который бы автоматизировал запуск из-за того что я не могу понять как мне сначала запустить Anaconda Prompt, а потом этому окну передать следующую команду fauxmo -c config.json
Подскажите в каком направлении копать. Спасибо.

GUI » Изменение размера элементов при смене размера окна pyqt5 » Янв. 11, 2018 21:11:15

Добрый день.

Использую pyqt5 и ui-файлы из дизайнера
Хочу, чтобы QTab занимал все место на форме. А на одном из табов таблица занимала всю ширину при изменении размеров QMainForm.
Каковы должны быть мои действия?
Кладу на главную форму QHBoxLayout. Внутри него панель табов. Да, они растягиваются на весь лейаут. А как растягивать сам QHBoxLayout по размерам формы? При изменении размеров формы его размер фиксирован