@ru_python

Страница 7528 из 9768
Tishka17
26.12.2018
10:53:45
:)

Игорь
26.12.2018
11:02:38
Такой вопрос. Использую multiprocessing. Если в подпроцессе произошла ошибка, нужно остановить выполнение кода после обработки и перейти к следующей задаче из map. Как это сделать?

Tishka17
26.12.2018
11:05:11
Ой

Google
Tishka17
26.12.2018
11:05:24
А что, просто завершить функцию не вариант?

Роман
26.12.2018
11:11:35
так, теперь вопрос совершенно не связанный с предыдщим

как работают псевдотерминалы?

вот я открываю пару: master, slave = os.openpty() и жду, что в мастер смогу писать, а из слейва читать

но это, судя по всему не так.

Tishka17
26.12.2018
11:14:52
как работают псевдотерминалы?
Создаётся специальное виртуальное устройство

И через него общаются

Роман
26.12.2018
11:16:38
man 7 pty
да читал, но вот все равно непонятно

и по логике все должно работать, однако поток зависает при попытке считать из slave'а

Tishka17
26.12.2018
11:17:50
эм

зачем тебе псевдотерминалы?

Google
Роман
26.12.2018
11:19:14
пытаюсь эмулировать последовательный порт

Игорь
26.12.2018
11:21:36
в подпроцессе exit(0) прописать
exit(0) вешает родительский процесс

Alex
26.12.2018
11:23:17
вот я открываю пару: master, slave = os.openpty() и жду, что в мастер смогу писать, а из слейва читать
master \ slave - дуплексные. ожидается, что на одном конце читает-пишет процесс в master, на другом конце в slave.

Tishka17
26.12.2018
11:23:24
Aragaer
26.12.2018
11:23:38
эээ, чот не так делаете

Tishka17
26.12.2018
11:23:52
Вообще, последовательный порт чуть сложнее, там ещё fctl всякие могут быть

Aragaer
26.12.2018
11:24:06
а, не, окнорм

это обертка такая значит

Aragaer
26.12.2018
11:24:36
но да, они скорее всего блокируемые и надо возиться с termios, чтобы там все настроить

хм

стоп

Aragaer
26.12.2018
11:25:48
как планируется использовать pty для связи двух процессов?

Maxim
26.12.2018
11:26:08
Aragaer
26.12.2018
11:26:39
карочи объясняю

когда используется pty, то надо из мастера читать и в мастер писать

Роман
26.12.2018
11:27:06
Aragaer
26.12.2018
11:27:09
а от слейва надо только получить имя файла

noName
26.12.2018
11:27:26
есть варианты как юзать mtProto в pyTelegramBotAPI?

Google
Aragaer
26.12.2018
11:27:32
/me задумался

сколько раз использовал псевдотерминалы, ни разу не сталкивался с тем, чтобы пару делать

крч. Есть pty.fork

вот его используй

Tishka17
26.12.2018
11:28:28
Ну да, но хотя бы так
может проще файл или сокет?

Игорь
26.12.2018
11:28:32
банально with Pool(processes=5) as pool: results = \ pool.map(func, list_of_args) и внутри func после try/except обрабатывается ошибка и sys.exit(0)

Aragaer
26.12.2018
11:29:01
pty.fork() Fork. Connect the child’s controlling terminal to a pseudo-terminal. Return value is (pid, fd). Note that the child gets pid 0, and the fd is invalid. The parent’s return value is the pid of the child, and fd is a file descriptor connected to the child’s controlling terminal (and also to the child’s standard input and output).

Роман
26.12.2018
11:30:03
может проще файл или сокет?
Ну как вариант, кстати

Aragaer
26.12.2018
11:30:08
pid, fd = pty.fork() if pid == 0: print("hello, world") exit(0) data = os.read(fd) print(data.decode())

Aragaer
26.12.2018
11:33:39
в какую наружу?

Роман
26.12.2018
11:33:52
сек, давай объясню, что пытаюсь сделать

Lazoreth
26.12.2018
11:35:03
Подскажите пожалуйста - как запустить асинхронную функцию в синхронной без смс, регистрации и await?

Т.е. не просто запустить - а её результат получить

Арслан
26.12.2018
11:35:26
ребят, посоветуйте книгу для новичка по python, с переводом на русский язык

Dima
26.12.2018
11:35:41
Лутц xD

Николай
26.12.2018
11:35:46
Лутц

Maxim
26.12.2018
11:35:57
Лутц, да)

Арслан
26.12.2018
11:36:19
точно?

Google
Lazoreth
26.12.2018
11:36:23
loop.run() не?
луп уже запущен

Владимир
26.12.2018
11:36:39
Dima
26.12.2018
11:36:53
луп уже запущен
Ну так что? Оно запустит в лупе его

Роман
26.12.2018
11:36:59
вот есть у меня небольшой сервачок, который запускается, создает псевдотерминал при помощи pty.openpty, и начинает слушать мастер, при этом при помощи os.ttyname узнает имя файла слейва, отдает его наружу(в лог) и потом другой софт, который должен работать с серийным портом, использует это имя и подключается к моему эмулятору как к реальному устройству

Lazoreth
26.12.2018
11:38:23
Ну так что? Оно запустит в лупе его
Это команда запуска лупа. Вылетит runtime_error что луп уже запушен

Роман
26.12.2018
11:38:35
Какая-то такая мысль у меня была

Admin
ERROR: S client not available

Роман
26.12.2018
11:39:46
да это-то я сделаю, мне интересно, где косяк в моих размышлениях

Tishka17
26.12.2018
11:40:15
В том, что ты решил что терминал это просто файл

Dima
26.12.2018
11:41:39
Это команда запуска лупа. Вылетит runtime_error что луп уже запушен
This function runs the passed coroutine, taking care of managing the asyncio event loop and finalizing asynchronous generators.

Роман
26.12.2018
11:41:49
Lazoreth
26.12.2018
11:42:48
This function runs the passed coroutine, taking care of managing the asyncio event loop and finalizing asynchronous generators.
File "/home/lazoreth/PyProjects/project/bookmakers/bet/service/handlers/place_bet.py", line 95, in _place_remote_bet response = loop.run_until_complete(Fetcher.place_bet_async(data, cookies)) File "/usr/lib/python3.6/asyncio/base_events.py", line 455, in run_until_complete self.run_forever() File "/usr/lib/python3.6/asyncio/base_events.py", line 412, in run_forever 'Cannot run the event loop while another loop is running') RuntimeError: Cannot run the event loop while another loop is running Пруф

Lazoreth
26.12.2018
11:44:18
Хм, а где ты ее в 3.6 питоне взял?)
прочитал не run а run_untill_complete

сорян

:D

Нельзя до 3.7 обновлятся, пика работать перестаннет

Google
Tishka17
26.12.2018
11:45:44
Так что, товарищи? Задача не решаема?
а сложно в func написать return?

зачем там exit?

Роман
26.12.2018
11:47:19
а чего не работает?
дык при попытке чтения из слейва ничего не приходит(вист поток)

Игорь
26.12.2018
11:47:35
а сложно в func написать return?
очень, у меня внутри func, как бы еще вызываюся другие функции и мне нужно прервать выплонение на месте возникновения ошибки сразу. Нет, можно конечно поднимать этот ретерн до самого верха, но это такое себе решение. Хотелось просто закончить работу скрипта и все

Tishka17
26.12.2018
11:47:51
ещё раз

Роман
26.12.2018
11:47:52
может быть дело в том, что и запись в мастер и чтение из слейва происходят в одном процессе?

Tishka17
26.12.2018
11:47:57
выполнение чего ты хочешь прервать?

Игорь
26.12.2018
11:48:05
func

Роман
26.12.2018
11:48:44
В том, что ты решил что терминал это просто файл
ну так вроде ж оно и должно так работать

Tishka17
26.12.2018
11:48:48
func
def func2(*a, **kw): try: func(*a, **kw) except: return

Роман
26.12.2018
11:48:50
стопудово
сукаядебил

Николай
26.12.2018
11:49:05
Всем привет. Вопрос по алхимии, не могу найти ответ. Есть ли какой то способо сделать предварительные операции перед тем, как совершить инициализацию и при изменении поля сделать некоторые действия пример: class MyTable(Base): date = column('date', DateTime(timezone=True)) session.query(MyTable).all() # получать дату нужного мне формата, например extract(epoch from date) as date MyTable.date = something # хотелось бы тут отправлять в базу после коммита, но только в виде to_timestamp({date})

Aragaer
26.12.2018
11:49:35
дык при попытке чтения из слейва ничего не приходит(вист поток)
надо посмотреть на настройки устройства - termios, вот это вот все

а ваще... пойду поиграюсь 8)

Страница 7528 из 9768