Сервер Linux запускает проект Python с 0

Linux
Сервер Linux запускает проект Python с 0

Я купил учетную запись сервера в школьной лаборатории и записал шаги по настройке среды и обучению модели.

Примечание. Из-за нехватки места в этой статье представлены только основные принципы использования при использовании определенных команд.Подробности см. по ссылке в приложении.

Просмотр основной информации о сервере

Информация о версии Linux

пройти черезcat /etc/centos-releaseПосмотрите дистрибутив линукса.

пройти черезarchГлядя на архитектуру операционной системы, выведите x86_64 для 64-разрядной системы и выведите i686 или i386 для 32-разрядной системы.

image.png

Как видно из рисунка, автор использует CentOS 7.7, 64-битную систему.

Информация о графическом процессоре

пройти черезnvidia-smiВы можете просмотреть информацию о состоянии графического процессора, а результат выполнения показан на рисунке.

image.png

Пояснение параметров в части формы:

  • ГП:Номер графического процессора в машине (при наличии нескольких видеокарт номер начинается с 0)
  • Производительность:Состояние производительности графического процессора от P0 (максимальная производительность) до P12 (минимальная производительность)
  • Стойкость-М:Состояние непрерывного режима.Хотя непрерывный режим потребляет много энергии, запуск нового приложения графического процессора занимает меньше времени.На рисунке показано: выкл.

Настроить среду conda

1. Загрузите установочный пакет Linux (файл .sh)

официальный сайт анаконды-->Download Site-->Anaconda3-2019.03-Linux-x86_64.sh

2. Установите Анаконду3

bash Anaconda3-2019.03-Linux-x86_64.sh

3. Добавьте каталог bin в каталоге установки в текущий файл переменных среды пользователя (~/.bash_profile).

Добавьте строку в конце файла профиля:export PATH=/你的安装目录/anaconda3/bin:$PATH

использоватьsource ~/.bash_profileПусть конфигурация вступит в силу.

Если он появляется перед терминалом(base), что означает, что conda была успешно установлена ​​и вошла в виртуальную среду с именем base в conda. Чтобы выйти из среды conda, используйте командуconda deactivate, вы можете закрыть(base)намекать.

использоватьconda env listпоказать все виртуальные средыimage.png

Примечание. Некоторые ПРЕДУПРЕЖДЕНИЯ отображаются при выполнении команды, что означает, что в новой версии были удалены некоторые файлы, которые здесь используются.conda update -n base condaКоманда для обновления версии conda для решения этой проблемы.

5. Обновите среду и настройте

Сначала создайте средуconda create –n 环境名, повторное использованиеconda activate 环境名в окружающую среду.

Примечание. Рекомендуется создавать среду без указания версии Python, напримерconda create -n myenv python=3.6. Только когда версия не указана, созданная среда будет полностью совместно использоваться с основной средой, и она будет установлена ​​только в основной среде при использовании pip для установки. только при успешном использованииconda install somethingПосле этого среда стала независимой. Ссылаться наофициальная документация

Настроить среду проекта

1. Загрузите код проекта, используя ssh или sftp

Ссылка на ссылку:XShell загружает файлы на сервер Linux - Desperado_nbf - Blog Park (cnblogs.com)

2. Перейдите в папку с кодом и настройте среду

использоватьpip install -r requirements.txtУстановите пакеты, необходимые для проекта.

также можно использоватьconda install --yes --file requirements.txt установить.

Если в проекте нетrequirements.txtфайл, вы можете проверять сообщения об ошибках во время работы проекта и шаг за шагом устанавливать зависимые файлы.

[Необязательно] При использовании pip для установки зависимостей проекта вы можете сначала обновить и изменить источник pip.

# 升级pip版本(可选)
python -m pip install --upgrade pip 
# ===> 或使用 sudo pip install --upgrade pip
# 更改pip源为清华源(可选)
mkdir ~/.pip
vi ~/.pip/pip.conf
# ===> 添加下面的内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
# ===> 然后保存并退出,以后使用pip install时,就可以享受正常网速了

3. Используйте VSCode для удаленного редактирования кода сервера [необязательно]

Ссылка на ссылку:VsCode подключается к серверу и редактирует код на стороне сервера - Ищу программиста

4. Настройте блокнот Jupyter [необязательно]

Ссылка на ссылку:Установка среды Linux conda&jupyter

запустить проект

1. Проверьте, правильно ли работает проект

При запуске проекта автор столкнулся с такой проблемой

 File "~/MyCode/RecursiveSeparation/uPIT_2spk/trainer.py", line 16, in <module>
   import matplotlib.pyplot as plt
 File "~/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 32, in <module>
   import matplotlib.colorbar

ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ~/anaconda3/lib/python3.7/site-packages/matplotlib/_path.cpython-37m-x86_64-linux-gnu.so)

Самое простое решение заключается в следующем

$ vim  ~/.bash_profile  # 将下面两行命令写进文件
LD_LIBRARY_PATH=~/anaconda3/lib:$LD_LIBRARY_PATH     
export LD_LIBRARY_PATH
$ source  ~/.bash_profile

2. Включите демон

Чтобы поместить программу в фоновый режим, мы обычно используем nohup.

При использовании терминального инструмента, такого как xshell, для выхода он отправит процесс процессу, который мы запустили в текущей оболочке.SIGHUPSignal, действие по умолчанию этого сигнала состоит в том, чтобы завершить процесс, в результате чего ранее запущенная программа закрывается после закрытия соединения.

по командеnohup python train.py(进程名) &можетtrain.pyУстановите в качестве команды демона для запуска.

nohupпара командtrain.pyПроцесс делает три вещи:

  • Не допуститьSIGHUPСигнал отправляется этому процессу;
  • Закройте стандартный ввод. Процесс больше не может получать какие-либо данные, даже если он запущен на переднем плане;
  • Перенаправить стандартный вывод и стандартную ошибку в текущий каталогnohup.outдокумент.

Это,nohupКоманда фактически отключает дочерний процесс от сеанса, в котором он находится.

Чтобы установить выходной файлnohup.outпути, а также перенаправляет сообщения об ошибках наnohup.outв использованииnohup python -u train.py >train.log 2>&1 &. в>символ перенаправления, первый>означает перенаправление стандартного вывода в train.log, второй>Указывает, что сообщения об ошибках также перенаправляются на стандартный вывод.>Местоположение изменить нельзя.-uУбедитесь, что вывод можно своевременно сохранить в файл.

Уведомление,nohupКоманда автоматически не превращает процесс в «фоновую задачу», поэтому ее необходимо добавить&символ.

3. Обнаружение текущего состояния процесса

psКоманда используется для просмотра состояния процессов в системе.

Общее использованиеps -ef | gerp train.py(进程名)показыватьtrain.pyситуация процесса.

Некоторые параметры команды ps:

  • -e показать все процессы
  • -f показать всю информацию (полный формат)

функция gerp train.py

  • «|» — это конвейерная команда, что означает, что команда ps и команда grep выполняются одновременно.
  • grep означает найти, использоватьрегулярное выражениеНайдите текст и напечатайте соответствующие строки.

Результаты

UID PID PID PPID PPID C C STIME TTY TIME CMDimage.png

Значение каждого поля:

  • UID: владелец процесса
  • PID: идентификатор процесса
  • PPID: идентификатор родительского процесса.
  • C : процент ресурсов, используемых процессором.
  • STIME: время запуска системы.
  • TTY : расположение терминала для входа в систему
  • ВРЕМЯ : используемое процессорное время
  • CMD : выданная команда

На картинке обведено то, что автор использовал раньшеnohupСозданный процесс-демон видно, что его PPID равен 1, то есть процесс init, что соответствует характеристикам процесса-демона. И видим, что значение поля C равно 99, а это значит, что этот процесс занимает 99% ресурсов процессора.

Если мы хотим убить процесс, мы можем использоватьkillкоманда +-s KILL(сигнал для отправки) +PIDномер, отправить сигнал KILL процессу, указанному PID (Linux однозначно определяет процесс по номеру PID). какkill -s KILL 9979.

легко, также доступноkill %9979обе команды имеют одинаковый эффект.

затем пройтиps -ef | gerp train.pyГлядя на процесс train.py, вы обнаружите, что этот процесс был убит.

image.png

На этом пост в блоге заканчивается. Это мой первый блог на Nuggets. Если есть какие-либо ошибки, пожалуйста, не стесняйтесь сообщать об этом в комментариях.

Reference

Просмотр информации о версии операционной системы Linux — vaelailai — Blog Park (cnblogs.com)

Ознакомьтесь с 5 общими командами для типов системной архитектуры Linux | «Linux следует изучать так» (linuxprobe.com)

Подробное объяснение команды nvidia-smi для графического процессора - Требуется программист

Где правильное место для установки программного обеспечения Linux, и каталог подробно - Ищу программиста

Centos7 устанавливает Anaconda3 и общие команды conda - geek-share (geek-share.com)

Как обновить источник пипсов - Облако+Сообщество - Tencent Cloud (tencent.com)

Как создать соответствующую виртуальную среду conda после наличия файла requirements.txt? Можно ли его установить с помощью команды pip?

Используйте conda для установки пакета зависимостей, указанного в файле require.txt — Gelthin — Blog Park (cnblogs.com)

VsCode подключается к серверу и редактирует код на стороне сервера - Ищу программиста

ImportError: /lib64/libstdc++.so.6: версия `CXXABI_1.3.9' не найдена - разыскивается программист

Как обновить источник пипсов - Облако+Сообщество - Tencent Cloud (tencent.com)

Как запустить демон Linux — сетевой журнал Ruanyifeng (ruanyifeng.com)

Подробное объяснение ps -ef|grep - отчаяние_призрак - Blog Park (cnblogs.com)

фоновая программа nohup и перенаправление вывода