
CАНЯ
30.11.2016
19:04:39
»> python bot.py
File "<stdin>", line 1
python bot.py
^
SyntaxError: invalid syntax

Ray
30.11.2016
19:04:48
не ну вы посмотрите, не успел прийти как уже говорит нам как надо

Alexandr
30.11.2016
19:06:37
Как будто в коде :)

Google

Ray
30.11.2016
19:07:02
потому как хочу вылечить
ошибку командой rm -rf / )

Jim
30.11.2016
19:07:26
ЛОЛ

Alexandr
30.11.2016
19:07:31
)))0)0

Ray
30.11.2016
19:07:56
сейчас вы просто пишете quit()
и потом делаете так
python3 bot.py

CАНЯ
30.11.2016
19:08:23
слушаю

Jim
30.11.2016
19:08:26
CАНЯ тебе на https://telegram.me/python_beginners
жми ctrl+d и запускай скрипт из командной строки а не из интерпретатора

Ray
30.11.2016
19:09:26
это важно

ThePanaceya
30.11.2016
19:10:41
А p4 зацепил ...

Google

CАНЯ
30.11.2016
19:11:28
IndentationError: expected an indented block
bot.polling(none_stop=True)
^
IndentationError: expected an indented block

Jim
30.11.2016
19:11:57
короч погугли ошибки, а. там просто всё.

CАНЯ
30.11.2016
19:12:01
просвятите великие программисты Русские!

Jim
30.11.2016
19:12:08
а лучше сядь, почитай доку по компоненту и почини

Pavel
30.11.2016
19:12:11

Jim
30.11.2016
19:12:48
ему надо бота запустить, он не чтец =)

Alex
30.11.2016
19:14:43
ребят подскажите как правильно здатать class type в питоне?
на старых версиях питона работал код, а теперь на 2.7.10 версии никак
выдает мне следующее
Traceback (most recent call last):
File "hellopython.py", line 456, in <module>
spot = Dog("Spot", 53, 27, "Ruff", "Derek")
File "hellopython.py", line 433, in __init__
super(Dog, self).__init__(name, height, weight, sound)
TypeError: must be type, not classobj
весь код тут:
http://www.newthinktank.com/2014/11/python-programming/
когда наследую класс и использую super
указываю super(CLASS_OBJECT_NAME, self).__init__(name,height,weight,sound)
родительский класс Dog
точнее не, родительский класс Animal
в ссылке на сниппет кода
строка 431 432
# How to call the super class constructor
super(Dog, self).__init__(name, height, weight, sound)

Pavel
30.11.2016
19:20:35

Jakhongir
30.11.2016
19:37:57
привет всем!

Emil
30.11.2016
19:39:52
Привет

Ray
30.11.2016
19:41:13
великие программисты из Англии тебя бы форматнули на 3й минуте

Paul
30.11.2016
20:25:28

Nikolay
30.11.2016
20:25:41
што, опять украина

Google

Ray
30.11.2016
20:26:12

Paul
30.11.2016
20:27:07

Ray
30.11.2016
20:27:32
на украине много людей которые считают себя вполне русскими
о везде не знаю

Stanislav
30.11.2016
20:28:20
русскоговорящие не означает русские :)

Ray
30.11.2016
20:28:46

Paul
30.11.2016
20:29:13
русскоговорящие не означает русские :)
если человек сам считает себя русским - почему я должен его в этом разубеждать? Я же говорю не о тех кто говорит по-русски. А про тех, кто себя русскими называет :)

Nikolay
30.11.2016
20:29:36
но ведь футболки
и кепки
с надписью "ЯРУССКИЙ"

Ray
30.11.2016
20:30:16

Paul
30.11.2016
20:30:58
и кепки
ну и что. У меня есть кепка с надписью "мерседес". Но это не значит, я - мерседес
это бизнес

Korolll
30.11.2016
20:46:11
Ребят помогите пожалуйста, использую последнюю версию tornado. Данные между tornado и nginx передаю через unix сокет, но проблема в том что, когда tornado создаёт сокет по умолчанию, на него никто не имеет прав даже root соответственно обмен данными не возможен. Помогите пофиксить
Разумеется, запуск tornado сервера автоматизирован, так что просто руками cmod вбить не удасться

Aragaer
30.11.2016
20:50:18
а чем рут такой особенный? Какие права на сокете?

Korolll
30.11.2016
20:51:07

Aragaer
30.11.2016
20:52:14
http://www.tornadoweb.org/en/stable/netutil.html

Google

Aragaer
30.11.2016
20:52:24
вроде как дефолтные права 384, то есть ...

Nikita
30.11.2016
20:52:28
ЯРУСКИЙ
надо так

Aragaer
30.11.2016
20:52:42
600
http://www.tornadoweb.org/en/stable/_modules/tornado/netutil.html#bind_unix_socket - вот, 0o600 по умолчанию и внутри происходит os.chmod на это значение
посмотри, где у тебя создается в твоем питоновском коде этот юникс сокет - ты передаешь mode=0

Admin
ERROR: S client not available

Korolll
30.11.2016
20:56:33

Aragaer
30.11.2016
20:57:06
найди в своем коде bind_unix_socket
и посмотри, какие аргументы ты туда передаешь

Korolll
30.11.2016
20:59:08
Я передавал только путь до файла, остальное по дефолту

Anton
30.11.2016
21:00:10
Явное указание прав помогло? Какой путь указывали?

Korolll
30.11.2016
21:03:05

Anton
30.11.2016
21:04:57
Покажите, на всякий случай код. Я бы ещё проверил права на директорию. Ну и из под какого пользователя пускается tornado тоже интересно.


Korolll
30.11.2016
21:06:29
[program:tornado]
user=andr
directory = /home/andrey/PycharmProjects/my_site/my_resume/backend/my_blog
command = /home/andrey/PycharmProjects/my_site/bin/python manage.py torn_conf %(process_num)s
numprocs = 4
process_name = tornado-%(process_num)s
stdout_logfile=/home/andrey/PycharmProjects/my_site/my_resume/nginx/logs/supervisor_tornado.log
autostart=true
autorestart=true
redirect_stderr=true
конфиг супервисора
import signal
import time
import tornado.httpserver
import tornado.ioloop
from django.core.management.base import BaseCommand, CommandError
from tornado.netutil import bind_unix_socket
from applications.tornado.socket_tornado import application
class Command(BaseCommand):
args = '[port_number]'
help = 'Starts the Tornado application for message handling.'
def __init__(self, stdout=None, stderr=None, no_color=False):
super().__init__(stdout=None, stderr=None, no_color=False)
self.http_server = tornado.httpserver.HTTPServer(application)
def add_arguments(self, data):
data.add_argument('socket_name')
def sig_handler(self, sig, frame):
tornado.ioloop.IOLoop.instance().add_callback(self.shutdown)
def shutdown(self):
self.http_server.stop()
io_loop = tornado.ioloop.IOLoop.instance()
io_loop.add_timeout(time.time() + 2, io_loop.stop)
def handle(self, *args, **options):
if len(options):
try:
self.http_server.add_socket(bind_unix_socket(
'/home/andrey/PycharmProjects/my_site/my_resume/nginx/sockets/tornado-' + str(options['socket_name']) + '.sock'),mode=384)
except ValueError:
raise CommandError('Invalid port number specified')
signal.signal(signal.SIGTERM, self.sig_handler)
signal.signal(signal.SIGINT, self.sig_handler)
tornado.ioloop.IOLoop.instance().start()
и конфиг торнадо


Aragaer
30.11.2016
21:09:00
гм
ну как бы зачем создавать сокет в собственно личном каталоге-то?

Google

Nikita
30.11.2016
21:10:12
а почему нет?

Aragaer
30.11.2016
21:10:36
а нгинкс туда доберется?

Nikita
30.11.2016
21:10:48
а почему нет?

Korolll
30.11.2016
21:10:58

Aragaer
30.11.2016
21:11:00
а у него права на это есть?
можно в /tmp или в /var создавать например

Korolll
30.11.2016
21:12:36
Ну от каталога то права на файл не зависят

Aragaer
30.11.2016
21:12:49
я бы предложил пойти и глянуть, что именно делает торнадо в bind_unix_socket
мало ли, чего-то там потерялось

Korolll
30.11.2016
21:16:52

Paul
30.11.2016
21:18:08

Korolll
30.11.2016
21:20:14

Paul
30.11.2016
21:25:47

Korolll
30.11.2016
21:32:04

Anton
30.11.2016
21:42:36
Ну от каталога то права на файл не зависят
Нет же. Если у nginx нет прав на чтение каталога, он не получит доступ к файлам из него. Торнадо, как я понял, вы из под своего пользователя пускаете, так? А nginx? Покажите, пожалуйста, ls -l для каталога и для самого сокета. Вы сами из него читать можете?

Korolll
30.11.2016
21:43:43
srw------- 1 andr andr 0 дек 1 03:12 tornado-0.sock
srw------- 1 andr andr 0 дек 1 02:07 tornado-1.sock
srw------- 1 andr andr 0 дек 1 02:07 tornado-2.sock
srw------- 1 andr andr 0 дек 1 02:07 tornado-3.sock

Anton
30.11.2016
21:44:23
Покажите: ps u | grep nginx

Korolll
30.11.2016
21:44:28