С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/142: Рейтинг темы: голосов - 142, средняя оценка - 4.89
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
1

PyCharm. Не могу установить библиотеки

27.03.2021, 07:44. Показов 28951. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Только начинаю пользоваться PyCharm'ом, но это просто ...
Подскажите пожалуйста как установить библиотеки? Нажимаю установить face-recognition в настройках, он выдаёт ошибку:
Command errored out with exit status 1: 'C:\Users\Vlad\PycharmProjects\face_rec\venv\Scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Vlad\\AppData\\Local\\Temp\\pip-install-80sebdi0\\dlib_f328f3bba7fe49da87661b5e8a036595\\setup.py'"'"'; __file__='"'"'C:\\Users\\Vlad\\AppData\\Local\\Temp\\pip-install-80sebdi0\\dlib_f328f3bba7fe49da87661b5e8a036595\\setup.py'"'"';f=getattr(tokeniz e, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Vlad\AppData\Local\Temp\pip-record-k8dq_msn\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Vlad\PycharmProjects\face_rec\venv\include\site\python3.8\dlib' Check the logs for full command output.

Нажимаю установить cv2, он выдаёт

ERROR: Could not find a version that satisfies the requirement cv2
ERROR: No matching distribution found for cv2

Как их всё-таки установить? Ошибки могут быть связанны с тем, что у меня пробная версию PyCharm'а?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 07:44
Ответы с готовыми решениями:

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

Подключение библиотеки Telebot к PyCharm
Вычитал статейку по созданию бота на API телеграма, установил все по jописанной там инструкции и...

Ошибка установки библиотеки в PyCharm
Всем добрый день, не пойму с одной проблеммой, я новичок в языке программирования Python, ранее...

В Pycharm ставятся не все библиотеки
Периодически сталкиваюсь с тем, что в Pycharm не ставится какая-нибудь библиотека. На данный...

17
Эксперт PythonЭксперт Java
19509 / 11049 / 2931
Регистрация: 21.10.2017
Сообщений: 23,302
27.03.2021, 09:09 2
Цитата Сообщение от triatri3 Посмотреть сообщение
Ошибки могут быть связанны с тем, что у меня пробная версию PyCharm'а?
Нет
Кликните здесь для просмотра всего текста
1
Автоматизируй это!
Эксперт Python
7213 / 4709 / 1224
Регистрация: 30.03.2015
Сообщений: 13,416
Записей в блоге: 29
27.03.2021, 09:41 3
triatri3, версия питона какая?

Добавлено через 1 минуту
ошибка скорее всего не полная, причина не ясна
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
27.03.2021, 09:49  [ТС] 4
Цитата Сообщение от Welemir1 Посмотреть сообщение
версия питона какая?
Версия питона - 3.8
А насчёт ошибки - не знаю как отобразить, может скриншот поможет
Миниатюры
PyCharm. Не могу установить библиотеки   PyCharm. Не могу установить библиотеки  
0
Автоматизируй это!
Эксперт Python
7213 / 4709 / 1224
Регистрация: 30.03.2015
Сообщений: 13,416
Записей в блоге: 29
27.03.2021, 10:52 5
triatri3, ну так весь текст вон из окна не скопировать чтоли? пробуй в терминале выполнить как тебе и советуют
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
27.03.2021, 13:26  [ТС] 6
Сделал это, запустил через терминал. Вот код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import face-recognition #пробовал и face_recognition
import cv2
import numpy as np
import os
from datetime import datetime
 
path = 'KnownFaces'
images = []
classNames = []
myList = os.listdir(path)
print(myList)
 
for cls in myList:
    curImg = cv2.imread(f'{path}/{cls}')
    images.append(curImg)
    classNames.append(os.path.splitext(cls)[0])
 
print(classNames)
 
def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
    return encodeList
 
def markAttendance(name):
    with open("Attendance.csv", "r+") as f:
        myDataList = f.readlines()
        nameList = []
        for line in myDataList:
            entry = line.split(',')
            nameList.append(entry[0])
        if name not in nameList:
            now = datetime.now()
            dtString = now.strftime("%H:%M:%S")
            f.writelines(f'\n{name}, {dtString}')
 
encodeListKnown = findEncodings(images)
print("Декодирование закончено")
 
cap = cv2.VideoCapture(0)
 
while True:
    success, img = cap.read()
    imgS = cv2.resize(img, (0, 0), None, 0.25, 0.25)
    imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)
 
    facesCurFrame = face_recognition.face_locations(imgS)
    encodeCurFrame = face_recognition.face_encodings(imgS, facesCurFrame)
 
    for encodeFace, faceLoc in zip(encodeCurFrame, facesCurFrame):
        matches = face_recognition.compare_faces(encodeListKnown, encodeFace)
        faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)
        #print(faceDis)
        matchIndex = np.argmin(faceDis)
 
        if matches[matchIndex]:
            name = classNames[matchIndex]
            #print(name)
            y1, x2, y2, x1 = faceLoc
            y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4
            cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
            cv2.rectangle(img, (x1, y2 - 35), (x2, y2), (0, 255, 0), cv2.FILLED)
            cv2.putText(img, name, (x1 + 6, y2 - 6), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)
            markAttendance(name)
 
    cv2.imshow("WebCam", img)
    cv2.waitKey(1)
Выводит следующее:
Код
import face-recognition
  File "<stdin>", line 1
    import face-recognition
               ^
SyntaxError: invalid syntax
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
>>> import os
>>> from datetime import datetime
>>>
>>> path = 'KnownFaces'
>>> images = []
>>> classNames = []
>>> myList = os.listdir(path)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: 'KnownFaces'
>>> print(myList)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myList' is not defined
>>>
>>> for cls in myList:
...     curImg = cv2.imread(f'{path}/{cls}')
...     images.append(curImg)
...     classNames.append(os.path.splitext(cls)[0])
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myList' is not defined
>>> print(classNames)
[]
>>>
>>> def findEncodings(images):
...     encodeList = []
...     for img in images:
...         img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
...         encode = face_recognition.face_encodings(img)[0]
...         encodeList.append(encode)
...     return encodeList
...
>>> def markAttendance(name):
...     with open("Attendance.csv", "r+") as f:
...         myDataList = f.readlines()
...         nameList = []
...         for line in myDataList:
...             entry = line.split(',')
...             nameList.append(entry[0])
...         if name not in nameList:
...             now = datetime.now()
...             dtString = now.strftime("%H:%M:%S")
...             f.writelines(f'\n{name}, {dtString}')
...
>>> encodeListKnown = findEncodings(images)
>>> print("Декодирование закончено")
Декодирование закончено
>>>
>>> cap = cv2.VideoCapture(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cv2' is not defined
>>>
>>> while True:
...     success, img = cap.read()
...     imgS = cv2.resize(img, (0, 0), None, 0.25, 0.25)
...     imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: name 'cap' is not defined
>>>     facesCurFrame = face_recognition.face_locations(imgS)
  File "<stdin>", line 1
    facesCurFrame = face_recognition.face_locations(imgS)
IndentationError: unexpected indent
>>>     encodeCurFrame = face_recognition.face_encodings(imgS, facesCurFrame)
  File "<stdin>", line 1
    encodeCurFrame = face_recognition.face_encodings(imgS, facesCurFrame)
IndentationError: unexpected indent
>>>
>>>     for encodeFace, faceLoc in zip(encodeCurFrame, facesCurFrame):
  File "<stdin>", line 1
    for encodeFace, faceLoc in zip(encodeCurFrame, facesCurFrame):
IndentationError: unexpected indent
>>>         matches = face_recognition.compare_faces(encodeListKnown, encodeFace)
  File "<stdin>", line 1
    matches = face_recognition.compare_faces(encodeListKnown, encodeFace)
IndentationError: unexpected indent
>>>         faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)
  File "<stdin>", line 1
    faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)
IndentationError: unexpected indent
>>>         #print(faceDis)
>>>         matchIndex = np.argmin(faceDis)
  File "<stdin>", line 1
    matchIndex = np.argmin(faceDis)
IndentationError: unexpected indent
>>>
>>>         if matches[matchIndex]:
  File "<stdin>", line 1
    if matches[matchIndex]:
IndentationError: unexpected indent
>>>             name = classNames[matchIndex]
  File "<stdin>", line 1
    name = classNames[matchIndex]
IndentationError: unexpected indent
>>>             #print(name)
>>>             y1, x2, y2, x1 = faceLoc
  File "<stdin>", line 1
    y1, x2, y2, x1 = faceLoc
IndentationError: unexpected indent
>>>             y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4
  File "<stdin>", line 1
    y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4
IndentationError: unexpected indent
>>>             cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
  File "<stdin>", line 1
    cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
IndentationError: unexpected indent
>>>             cv2.rectangle(img, (x1, y2 - 35), (x2, y2), (0, 255, 0), cv2.FILLED)
  File "<stdin>", line 1
    cv2.rectangle(img, (x1, y2 - 35), (x2, y2), (0, 255, 0), cv2.FILLED)
IndentationError: unexpected indent
>>>             cv2.putText(img, name, (x1 + 6, y2 - 6), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)
  File "<stdin>", line 1
    cv2.putText(img, name, (x1 + 6, y2 - 6), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)
IndentationError: unexpected indent
>>>             markAttendance(name)
  File "<stdin>", line 1
    markAttendance(name)
IndentationError: unexpected indent
>>>
>>>     cv2.imshow("WebCam", img)
  File "<stdin>", line 1
    cv2.imshow("WebCam", img)
IndentationError: unexpected indent
>>>     cv2.waitKey(1)
ОШИБКА ПОЧТИ В КАЖДОЙ СТРОЧКЕ! Но я так понимаю что это из-за неподключённых библиотек, ведь так? Можете пожалуйста скинуть рабочий код для распознавания лиц в google colab'e?
0
Автоматизируй это!
Эксперт Python
7213 / 4709 / 1224
Регистрация: 30.03.2015
Сообщений: 13,416
Записей в блоге: 29
27.03.2021, 19:32 7
Цитата Сообщение от triatri3 Посмотреть сообщение
Сделал это, запустил через терминал.
ОМГ. тебя вон выше на скрине попросили не в консоли, а в терминале пичарма установить бибилиотеку! в терминале пичарма написать пип инсталл! а не писать код в консоли пичарма.
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
28.03.2021, 16:01  [ТС] 8
Извините, не так понял. Вы хотите чтобы я просто запустил в PyCharm'e код, правильно? Если так, то выводит лишь это:
C:\Users\Vlad\PycharmProjects\face_rec\venv\Scripts\python.exe C:/Users/Vlad/PycharmProjects/face_rec/main.py
File "C:/Users/Vlad/PycharmProjects/face_rec/main.py", line 1
import face-recognition
^
SyntaxError: invalid syntax

Process finished with exit code 1

Причём я скачал с github'a библиотеку (ну папку со всеми их файлами), всё равно не помогло (понимаю что ерунда, но надежда была). Что мне сделать? как исправить?
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
28.03.2021, 18:30 9
triatri3,
Нет такого pypi пакета как cv2. Поэтому pip отвечает, что ничего не найдено.
Зато есть пакет opencv-python который как раз под именем cv2 и импортируется, но устанавливать его нужно
Код
pip install opencv-python
Библиотека fase-recognition импортируется под другим именем:
Python
1
import face_recognition
P.S. Нужно читать доки библиотек прежде чем их устанавливать.

Добавлено через 6 минут
А то хотят видят школьники в уроках import telebot и ставят pip install telebot. А это вообще левая либа. А настоящая - pyTelegramBotAPI.
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
28.03.2021, 18:56  [ТС] 10
Цитата Сообщение от Garry Galler Посмотреть сообщение
Библиотека fase-recognition
Ахахахах даже не верится что я такой тупой и что я так написал. Спасибо большое!

Установил ещё и библиотеку opencv-python, прописал как Вы и написали (даже скопировал Ваш код), но всё равно выдаёт ошибку. Что не так?
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
28.03.2021, 18:57  [ТС] 11
Забыл прикрепить картинку
Миниатюры
PyCharm. Не могу установить библиотеки  
0
Автоматизируй это!
Эксперт Python
7213 / 4709 / 1224
Регистрация: 30.03.2015
Сообщений: 13,416
Записей в блоге: 29
28.03.2021, 19:08 12
triatri3, ты смеешься? ты зачем слова пип инсталл написал в модуле питон?)))) установи библиотеку через настройки пичарма или через терминал. В коде пип инсталл никто не пишет
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
28.03.2021, 20:10  [ТС] 13
Да, вроде компилятор отстал, по крайне мере не подсвечивает красным и не выдаёт это за ошибку, но остfлся вопрос с face_recognition. Выдаёт такую ошибку. Не могу найти одноимённую библиотеку. Одну похожу по названию (face_recognition_models) установил, но проблему это не решило. ВТорую (face_recognition_unit) не могу, выдаёт ошибку.

Сам код при запуске выдаёт ошибку в строке
import face_recognition

C:\Users\Vlad\PycharmProjects\face_rec\venv\Scripts\python.exe C:/Users/Vlad/PycharmProjects/face_rec/main.py
Traceback (most recent call last):
File "C:/Users/Vlad/PycharmProjects/face_rec/main.py", line 1, in <module>
import face_recognition
ModuleNotFoundError: No module named 'face_recognition'

Как исправить?

П.с. прикреплю фото с кодом ошибки при установке библиотеки face_recognition_unit
Миниатюры
PyCharm. Не могу установить библиотеки   PyCharm. Не могу установить библиотеки  
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
28.03.2021, 22:01 14
Лучший ответ Сообщение было отмечено triatri3 как решение

Решение

Цитата Сообщение от triatri3 Посмотреть сообщение
но остfлся вопрос с face_recognition. Выдаёт такую ошибку. Не могу найти одноимённую библиотеку
Я же написал, что она называется face-recognition: https://pypi.org/project/face-recognition/
То есть устанавливать ее нужно командой
Код
 pip install face-recognition
.
А импортировать уже без дефиса, но с нижним подчеркиванием.


И надо учиться отличать консоль Python, консоль PyCharm от консоли системной (cmd shell).
Команда pip это внешняя команда. Она исполняется системной консолью\shell-ом.
1
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
29.03.2021, 14:30  [ТС] 15
Извините, я реально тупой, но для меня это необузданная задача какая-то. Скачал я короче файлы по той ссылки, расположил как в интернете и в pyCharme написано (прикреплю скрины), пишу в терминал pip... и выдаёт ошибку. Пишет скачать какой-то dlib. Ну через настройки - добавить библиотеку (плюсик) пытаюсь установить его, но он тоже выдаёт ошибку. ЧТо я опять не так делаю? Извините, но матом уже очень хочется ругаться!
Миниатюры
PyCharm. Не могу установить библиотеки   PyCharm. Не могу установить библиотеки  
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
29.03.2021, 14:53 16
triatri3,
Бесполезно пытаться все это делать не зная ни Python, ни программирования.
Нельзя так просто взять и использовать библиотеки для ML. Там слишком много бинарных зависимостей для установки которых в некоторых случаях требуется компилятор С++. Вот так.
dlib ставится из сорцов. И без компилятора ты ее не поставишь. Нужно объяснять что такое компилятор и как его ставить?
0
0 / 0 / 0
Регистрация: 08.04.2022
Сообщений: 49
15.01.2024, 22:14 17
Ваш способ решения проблемы сработал. Вы боженька сейчас для меня.
Еще подача очень понравилась)))) как в детском саду: "мои маленькие дееетки, сюда пальчики не суёёёёём"
Добавлено через 1 минуту
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Нет
А можете объяснить почему в командной строке самая новая версия, а если заходить в параметры пайчарм, то там старая версия, которая требует обновления?
0
Эксперт PythonЭксперт Java
19509 / 11049 / 2931
Регистрация: 21.10.2017
Сообщений: 23,302
15.01.2024, 22:18 18
https://devpractice.ru/python-... tual-envs/
0
15.01.2024, 22:18
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2024, 22:18
Помогаю со студенческими работами здесь

Сохранить нужные библиотеки в проекте PyCharm
Возможно ли сохранить все требуемые проекту библиотеки которые я устанавливал командами pip...

Почему PyCharm не видит мои библиотеки ?
Проблема в том что у меня есть библиотека win32api, win32con и обычный python эти библиотеки видит,...

PyCharm и библиотеки numpy/scipy/matplotlib
Вопрос. Открывает ли PyCharm community библиотеки numpy, scipy, matplotlib?

PyCharm распознавание библиотеки на локальной машине
Имею на своём компе библиотеку/проект на питоне (если быть точней yolo darknet) Как сделать, чтобы...

Pycharm не понимает слово pip при скачивании библиотеки
Здравствуйте, раньше без проблем скачивал нужную библиотеку через терминал. Сейчас при попытки...

Как установить Pycharm (Fedora)
В интернете все инструкции забиты под убунту. Скачал и выложил в /opt/ и что дальше?Запустить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru