1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/diyanqi07-TastickOJ

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

TastickOJ

Легкий OJ на основе Python — "Новый интерфейс" обеспечивает неповторимый опыт решения задач!

Шепот: школьник потратил более 100 часов на разработку этого проекта! [Поддержать!]### Схема установки для Linux-Ubuntu

- Видео-руководство: https://www.bilibili.com/video/bv1vp4y1q7ce Также объясняет, почему использование порта 80 затруднительно (можно использовать nginx для перенаправления портов).
  • В качестве примера используется Ubuntu 20.04 LTS (WSL).
  1. Вам следует заменить исходный репозиторий на китайский, чтобы обеспечить надежность загрузки данных.
    • Замена исходного репозитория apt-get. Пожалуйста, воспользуйтесь поисковой системой для получения информации о том, как это сделать.
  2. Проверьте, установлены ли g++, python3 и git.
  • Введите следующую команду в терминале:
g++
  • Посмотрите на результат, который должен быть:
g++: fatal error: no input files
compilation terminated.
  • Если результат такой, значит g++ установлен. В противном случае воспользуйтесь поисковой системой для установки.
  • Введите следующую команду:
python3
  • Посмотрите, появится ли что-то похожее на:
Python 3.8.2 (default, Apr 27 2020, 15:53:34)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
  • TIP: Вы можете нажать CTRL+D для выхода из интерактивного режима и возврата в bash.
  • Если вы видите что-то похожее, значит python3 установлен. В противном случае воспользуйтесь поисковой системой для установки.
  • Ваша версия Python должна быть не ниже 3.7 (включая 3.7), версия 3.6 может вызвать неизвестные ошибки.
  • Проверьте установку GIT.
  • Введите следующую команду:
git
  • Посмотрите, появится ли что-то похожее на:```markdown Это общие команды Git, используемые в различных ситуациях:

- ~~省略N行……~~
- Клонирование репозитория TastickOJ
- Выполните команду:
```bash
git clone https://github.com/diyanqi/TastickOJ/
  • Вам может потребоваться подождать около минуты (в худшем случае), так как серверы GitHub находятся за границей, и скорость загрузки может быть низкой.
  • Однако по сравнению с другими тяжелыми проектами, этот процесс уже достаточно быстр.
  • Через некоторое время (примерно 30 секунд), вы увидите следующую информацию (она изменяется в процессе загрузки, но после завершения остается неизменной):
Клонирование в 'TastickOJ'... 
Удаленный: Перечисление объектов: 101, завершено.
Удаленный: Подсчет объектов: 100% (101/101), завершено.
Удаленный: Сжатие объектов: 100% (56/56), завершено.
Удаленный: Всего 101 (дельта 16), перезаписано 92 (дельта 13), перезаписано 0
Получение объектов: 100% (101/101), 345.11 KiB | 22.00 KiB/s, завершено.
Разрешение дельт: 100% (16/16), завершено.
  • Теперь TastickOJ загружен в ваш текущий каталог.
  • Не переходите в другие каталоги, просто выполните следующую команду:
cd TastickOJ
  • Ваш префикс команды изменится на:
имя_пользователя@имя_компьютера:~/TastickOJ$
  • Если каталог загрузки не ~/, этот путь может измениться, но убедитесь, что после последнего / стоит "TastickOJ".
  • Части "имя пользователя" и "имя компьютера" могут отличаться в зависимости от устройства.
  1. Подготовка окружения и запуск
  • Убедитесь, что у вас установлен Python, и проверьте, работает ли команда pip.
  • Выполните следующую команду:
pip3
  • Вы можете увидеть:
Команда 'pip3' не найдена, но она может быть установлена с помощью:
sudo apt install python3-pip
  • Тогда выполните:
sudo apt install python3-pip
  • В процессе установки вам может потребоваться ввести пароль.
  • Когда появится запрос "Вы хотите продолжить? [Y/n]", нажмите Enter.
  • Подождите установки pip3.
  • Если установка не удалась, вы можете увидеть следующее сообщение:
E: Несколько пакетов не могут быть загружены. Попробуйте выполнить apt-get update или добавьте --fix-missing.
  • Выполните:
sudo apt-get install python3-pip --fix-missing
  • Или
sudo apt-get upgrade
  • Подождите завершения установки и выполните следующую команду для проверки установки:
pip3
  • Если установка прошла успешно, вы увидите множество данных:
Использование:
  pip3 <command> [options]

Команды:

  • install Установить пакеты.
  • download Скачать пакеты.
- Удалены N строк.
- Подтвердите успешную установку, последовательно выполнив следующие команды:
```bash
pip3 install timeout_decorator -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install flask -i https://pypi.tuna.tsinghua.edu.cn/simple
```pip3 install flask_cors -i https://pypi.tuna.tsinghua.edu.cn/simple
  • ВАЖНО: используйте pip3, а не pip, так как это Linux, а не Windows
  • После завершения установки введите следующую команду:
python3 main.py
  • Теперь ситуация делится на две части, которые мы подробно объясним.
    1. Ошибка, последняя строка выглядит так:
ModuleNotFoundError: No module named 'XXXXX'
  • где XXXXX — это имя модуля.
  • Решение:
  • Выполните команду:
pip3 install XXXXX -i https://pypi.tuna.tsinghua.edu.cn/simple
  • где XXXXX — это имя модуля, которое вызвало ошибку, замените его, но не включайте одинарные кавычки '
Пример: если ошибка выглядит как ModuleNotFoundError: No module named 'timeout_decorator'
Вы должны выполнить команду:
pip3 install timeout_decorator -i https://pypi.tuna.tsinghua.edu.cn/simple
  • У вас может быть несколько неустановленных библиотек, выполните вышеуказанные команды до тех пор, пока установка не будет успешной.
    1. Успешное выполнение, вы увидите:
* Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server.  Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 334-787-378
  • Поздравляем! Установка выполнена успешно! Для доступа используйте браузер на устройстве в той же локальной сети, где IP-адрес вашего устройства:8080.
  • Например, если IP-адрес вашего устройства 192.168.9.11, вам нужно будет перейти по адресу http://192.168.9.11:8080/.
  • Для получения IP-адреса устройства выполните следующую команду:
ifconfig
```- Вы можете найти строку, похожую на:

inet 192.168.9.11

- Попробуйте каждый из этих IP-адресов с портом: 8080. Один из них должен быть доступен.# ВАЖНО   имя_по_умолчанию_для_администратора:admin   Пароль:admin5. Позднейшая разработка и настройка
- TastickOJ использует лицензию Mozilla 2.0.
- При обращении к серверу за ресурсами, вы увидите соответствующую информацию в консоли.
- **Изменение номера порта и режима отладки**:
- По умолчанию сервер работает в режиме отладки, но это имеет некоторые недостатки, например, сервер уже предупреждает нас:

ПРЕДУПРЕЖДЕНИЕ: Это сервер разработки. Не используйте его в продакшн-развертывании. Вместо этого используйте продакшн-WSGI-сервер.

- Найдите main.py, последняя строка:
```python
app.run(host = "0.0.0.0", port = 8080, debug = True)
  • Пожалуйста, не изменяйте значение host, иначе это может привести к невозможности запуска сервера.
  • Измените значение port=, например, на 80, это по умолчанию порт HTTP, что означает, что при обращении к серверу вам не нужно указывать номер порта, но это может сделать некоторые системы неспособными корректно работать с этим OJ.
  • Измените значение debug= на False, чтобы отключить режим отладки сервера.

Наконец, благодарим тренеров и участников олимпиад по информатике за использование этой системы OJ! Желаем вам всех AKIOI!

Примечание: AKIOI - это сленговое выражение, используемое в сообществе программистов, которое означает "All Kill in IOI", то есть "выиграть все задачи на олимпиаде по информатике".

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
HTML и 3 других языков
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/diyanqi07-TastickOJ.git
git@api.gitlife.ru:oschina-mirror/diyanqi07-TastickOJ.git
oschina-mirror
diyanqi07-TastickOJ
diyanqi07-TastickOJ
master