Уведомления

Группа в Telegram: @pythonsu

#1 Июль 27, 2016 10:13:33

romzes96
Зарегистрирован: 2016-07-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

 import requests
import subprocess
import json
import sys
import threading
import time
from Queue import Queue
numberOfViewers = int(sys.argv[1])
builderThreads = int(sys.argv[2])
startTime = time.time()
numberOfSockets = 0
concurrent = 25
urls = []
urlsUsed = []
def getURL(): # Get tokens
  output = subprocess.Popen(["livestreamer", "twitch.tv/moba_rus", "-j"], stdout=subprocess.PIPE).communicate()[0]
  return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter
def build(): # Builds a set of tokens, aka viewers
	global numberOfSockets
	global numberOfViewers
	while True:
		if numberOfSockets < numberOfViewers:
			numberOfSockets += 1
			print "Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers)
			urls.append(getURL())
def view(): # Opens connections to send views
	global numberOfSockets
	while True:
		url=q.get()
		requests.head(url)
		if (url in urlsUsed):
			urls.remove(url)
			urlsUsed.remove(url)
			numberOfSockets -= 1
		else:
			urlsUsed.append(url)
		q.task_done()
if __name__ == '__main__':
	for i in range(0, builderThreads):
		threading.Thread(target = build).start()
	
	while True:
		while (numberOfViewers != numberOfSockets): # Wait until sockets are built
			time.sleep(1)
		q=Queue(concurrent*2)
		for i in range(concurrent):
			try:
				t=threading.Thread(target=view)
				t.daemon=True
				t.start()
			except:
				print 'thread error'
		try:
			for url in urls:
				print url
				q.put(url.strip())
				q.join()
		except KeyboardInterrupt:
			sys.exit(1)

Изначально писал что в 19 строке ошибка TAB + пробелы.
19 строку исправил.
Теперь пишет что в 27 строке “ SyntaxError: invalid syntax ”
Помогите решить проблему пожалуйста.
Заранее спасибо/за внимание!

Отредактировано romzes96 (Июль 27, 2016 10:14:11)

Офлайн

#2 Июль 27, 2016 14:51:51

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

print-ы без скобок?

 print("Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers))
и т.д.

Офлайн

#3 Июль 27, 2016 19:15:03

romzes96
Зарегистрирован: 2016-07-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

Stepan_M
print-ы без скобок?
Спасибо большое за помощь. Вы мне помогли. Я исправил эту строку, после чего в коде оказалось ещё 2 подобные строки. Я всё исправил, спасибо Вам!
-
Только теперь появилась другая проблема.
ImportError: No module named ‘requests’
Не подскажите как её решить?
Заранее спасибо за помощь/внимание!

Офлайн

#4 Июль 27, 2016 19:56:43

romzes96
Зарегистрирован: 2016-07-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

С этим разобрался. Это модуль который устанавливается отдельно.
Вот ссылка на ВИДЕО где все подробно описано.

Теперь у меня другая ошибка.
В 7 строке.

from Queue import Queue
ImportError: No module named ‘Queue’


Решаю дальше, у кого есть желание помогайте не стесняйтесь!)

Отредактировано romzes96 (Июль 27, 2016 20:03:24)

Офлайн

#5 Июль 28, 2016 16:39:15

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

romzes96
ImportError: No module named ‘Queue’
Вероятно, тоже нет этого модуля в системе и его нужно установить.

Офлайн

#6 Июль 28, 2016 18:18:57

romzes96
Зарегистрирован: 2016-07-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

Stepan_M
Я загрузил эту библиотеку.
Она выглядит как queuelib. Но ошибка все равно осталось.
Кто знает как решить эту проблему?

Офлайн

#7 Июль 28, 2016 19:01:07

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Помогите пожалуйста с кодом.

romzes96
Я загрузил эту библиотеку.
Этот модуль часть стандартной библиотеки. У вас питон третей версии, в нем этот модуль с маленькой буквы называется.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Июль 28, 2016 19:02:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version