@ru_python

Страница 2385 из 9768
Nikolay
03.03.2017
00:15:53
а что там на стороне nginx? тот же wsgi, только уже сишный демон общается?
и плагин в nginx, и uwsgi - это все сишные реализации одного и того же протокола

Eugene
03.03.2017
00:16:00
gunicorn например только проксят

Софи
03.03.2017
00:16:27
и плагин в nginx, и uwsgi - это все сишные реализации одного и того же протокола
я просто не понимаю почему нельзя питон напрямую подключить. бутылочное горлышко все-равно в питоне должно быть.

Nikolay
03.03.2017
00:16:33
я не совсем правильно написал выше, wsgi - это способ, как правильно дергать программу, чтобы она работала

Google
Yury
03.03.2017
00:16:35
файлы создаются из питоноскрипта или из баша?
Из Python. Ситуация такая: есть минималистичная сборка linux на RPi, где стоят простенькие иксы и Python3 (нужно GUI потому что). Хочу запускать Python-скрипт по клику мышки. Для этого в "Open with" нужно записать свой собственный скрипт на баше, состоящий из одной строки. Есть переменные %f (имя файла) и %u (полный путь до него). Если записать просто как python3 %f - файлы создаются в usr. Ограничение в одну строчку все обламывает. Я в баше совершенно не силен, здесь бы прокатило в две строки как cd %u и python3 %f, но как это в одну строку объединить - я так и не понял.

Eugene
03.03.2017
00:16:36
и вообще нафига вам nginx если сейчас вся статика и медиа в cdn

Софи
03.03.2017
00:16:59
так это и есть напрямую
uwsgi? это внешний демон какой-то.

а не mod_php какой-нить

Eugene
03.03.2017
00:17:50
ну по сути uwsgi это типа как php5-fpm только у него больше плюшек. кстати uwsgi умеет и руби сервить и пхп и что угодно

Nikolay
03.03.2017
00:17:51
есть плагин в nginx, есть внешний демон

оба на сях реализуют один и тот же протокол, по которому и общаются через сокет

а uwsgi умеет команды из этого протокола преобразовывать в wsgi-вызовы к питонопрограмме

он нужен, потому что в nginx никто питон-интерпретатор встраивать не будет

Yury
03.03.2017
00:18:42
cd dir && python3 script.py
Пробовал. Эти операции идут как отдельные. Python вызывается относительно usr все равно, а не относительно dir.

Google
Nikolay
03.03.2017
00:19:10
os.path.dirname(__file__)

и дергай просто python3 /path/to/script.py

Nikolay
03.03.2017
00:20:20
ну им же всем пофиг. главное понимайте wsgi
nginx на сях написан, он не будет в себя встраивать питон, чтобы как-то красиво дергать питоноприложения

более того, ты можешь взять торнадо и использовать его, как фронтенд-сервер

и дергать основное приложение через wsgi из торнадо

Софи
03.03.2017
00:21:34
а uwsgi умеет команды из этого протокола преобразовывать в wsgi-вызовы к питонопрограмме
то есть, uwsgi и nginx общаются по своему собственному протоколу, не являющимся wsgi?

Eugene
03.03.2017
00:21:48
почитайте тут http://flask.pocoo.org/docs/0.12/deploying/uwsgi/

Nikolay
03.03.2017
00:21:59
там бинарный протокол

Софи
03.03.2017
00:22:27
и можно как юзать uwsgi демон. так и ngx_http_uwsgi_module, который понимает wsgi и можно программу на питоне или другой фигне приконнектить?

Eugene
03.03.2017
00:22:44
то есть, uwsgi и nginx общаются по своему собственному протоколу, не являющимся wsgi?
я же сразу сказал что uwsgi это не wsgi. и nginx понимает только uwsgi или проксю

Yury
03.03.2017
00:23:15
и дергай просто python3 /path/to/script.py
Костыльно, конечно, но видимо иначе не выйдет. Cпасибо.

Софи
03.03.2017
00:23:16
так. uwsgi != wsgi?

Nikolay
03.03.2017
00:23:17
но да, программу на питоне можно приконнектить к любой другой фигне, которая в него умеет

Софи
03.03.2017
00:23:21
первый - это бинарный протокол?

Nikolay
03.03.2017
00:23:24
Eugene
03.03.2017
00:23:27
так. uwsgi != wsgi?
http://flask.pocoo.org/docs/0.12/deploying/uwsgi/

Google
Nikolay
03.03.2017
00:23:28
да

Eugene
03.03.2017
00:23:46
uWSGI is both a protocol and an application server; the application server can serve uWSGI, FastCGI, and HTTP protocols.

Nikolay
03.03.2017
00:23:54
первый - это бинарный протокол?
uWSGI - это, по сути, прокси, преобразователь из бинарного протокола uwsgi в WSGI-вызовы

Софи
03.03.2017
00:24:04
http://flask.pocoo.org/docs/0.12/deploying/uwsgi/
мне хаутушки скучно. заставить работать - понятно. но почему - не до конца.

uWSGI - это, по сути, прокси, преобразователь из бинарного протокола uwsgi в WSGI-вызовы
теперь ясно. а ngx_http_uwsgi_module как раз коннектор к демону uwsgi?

Eugene
03.03.2017
00:24:37
да да

Софи
03.03.2017
00:25:46
я еще видимо с gunicorn путаю

он вроде как раз http сервер поднимает

который можно проксировать

Eugene
03.03.2017
00:26:29
uwsgi тоже умеет http и его можно проксировать

Nikolay
03.03.2017
00:26:39
gunicorn - это, по сути, тоже штука типа uwsgi, только на питоне и медленнее

Eugene
03.03.2017
00:26:42
просто именно по uwsgi лучше

Nikolay
03.03.2017
00:27:01
просто именно по uwsgi лучше
если “лучше” = “быстрее” - то да

Софи
03.03.2017
00:27:07
нейтив всегда лучше (:

Eugene
03.03.2017
00:27:23
gunicorn - это, по сути, тоже штука типа uwsgi, только на питоне и медленнее
ой не только медленнее.. в uwsgi вообще столько всего есть.. этому gunicron и не снилость никогда столько функционала.

Nikolay
03.03.2017
00:27:44
это, по сути, common purpose воркеры

сишные причем

можно в них питонокод запускать и вообще использовать как подобие celery

Google
Eugene
03.03.2017
00:28:32
я частично что-то реализовал в django-uwsgi

много еще работы а все времени нет.

удобно что uwsgi может считывать конфиги приложений хоть из бд. добавил в админке вассала - он запустился. пометил некативным - остановился.

ну это если в режиме императора запускать

Eugene
03.03.2017
00:32:57
не в курсе

Gnobitel
03.03.2017
00:33:39
Ребят, такая проблемка

Софи
03.03.2017
00:33:58
f-строки... пусть еще нестрогую типизацию завезут)

Nikolay
03.03.2017
00:34:57
Admin
ERROR: S client not available

Софи
03.03.2017
00:35:42
да что-то пхп уже подванивает

пора бы автокаст завезти

и эксепшены убрать (:

Gnobitel
03.03.2017
00:36:08
есть api разных версий, содержимое у них одинаковое, единственное отличие - это некоторые наименования ключей разные, но смысл их тот же

например

Gnobitel
03.03.2017
00:37:15
поле id в одной версии и поле orderID в другой версии, надо сделать функцию которая унифицирует поля

поля по смыслу все одинаковые

Nikolay
03.03.2017
00:37:38
и слава богу

не надо такого говна, как в js

Google
Софи
03.03.2017
00:37:58
не надо такого говна, как в js
ооо я от него в осадок выпадаю >_>

Nikolay
03.03.2017
00:38:00
но сильной ее назвать все равно язык не очень поворачивается

Gnobitel
03.03.2017
00:38:23
Все спят как всегда

Софи
03.03.2017
00:38:25
но прикол тут в чем. на бэкенде можно дропнуть. хоть на хаскеле писать

Софи
03.03.2017
00:38:44
на фронте придется с js возиться. да, трансляторы, но дедушку надо бы знать

как всяким сишникам асм. дабы с gdb наперевес дебажить

Gnobitel
03.03.2017
00:39:47
есть поле id в одной версии api и есть поле orderID в другой версии например, на выходе надо сделать так чтобы у всех было одинаковое наименование этого поля remote_payment_id

Софи
03.03.2017
00:40:24
в пхп можно на все забивать. как-то оно даже работать будет.

Софи
03.03.2017
00:41:03
исключений толком нет. по дефолту все в stdout валит

Nikolay
03.03.2017
00:41:13
тебе надо один API поверх них сделать?

Gnobitel
03.03.2017
00:41:59
тебе надо один API поверх них сделать?
да, чтобы на выходе был json унифицированный из двух или более api

на выходе функции)

Nikolay
03.03.2017
00:42:33
json-поля обходишь и переименовываешь

Gnobitel
03.03.2017
00:43:13
json-поля обходишь и переименовываешь
не преобразуя в dicts и lists?

Nikolay
03.03.2017
00:43:39
не преобразуя в dicts и lists?
преобразуя, разумеется

а как без преобразования? :)

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