Последние шесть месяцев я работаю над приложением Python с графическим интерфейсом, которое буду использовать на работе. В частности, мой графический интерфейс будет работать на нескольких кластерах суперкомпьютеров, которые я использую для работы.
Однако я в основном разрабатываю программное обеспечение на своем персональном компьютере, и здесь у меня нет прямого доступа к командам, которые будет вызывать мой графический интерфейс, поскольку графический интерфейс будет использовать subprocess
для вызова команд, которые доступны только на вычислительном кластере.
Итак, для эффективной разработки программы мне часто приходится копировать каталог, содержащий все файлы, относящиеся к графическому интерфейсу, в кластер. Затем я тестирую там свою текущую версию, нахожу все свои ошибки, исправляю их, редактируя файлы в кластере, и, наконец, копирую все файлы обратно на свой компьютер, перезаписывая старую версию.
Это просто кажется плохим способом, но я должен иметь возможность тестировать свое программное обеспечение в среде, для которой оно создано, чтобы найти свои ошибки.
Конечно, это распространенная проблема в разработке программного обеспечения... Чем занимаются настоящие программисты (в отличие от программистов-любителей, таких как я)?
Редактировать: примеры команд, которые доступны только в вычислительном кластере, которые я активно использую, — это squeue
, sacct
и scontrol
(команды, связанные с SLURM).
Edit2: я мог бы упомянуть, что я тестировал использование ssh-соединений с Python, но это значительно замедлило работу команд, поскольку мне приходилось устанавливать ssh-соединение для каждой команды, которую я хотел. Если бы я не мог установить продолжительный сеанс ssh, как при входе в систему при открытии моей программы, я не думаю, что ssh-ing будет работать.
squeue
,sacct
илиscontrol
, доступны только в кластере. - person Yoda   schedule 01.06.2019conda
, который позволяет тестировать с использованием одного и того же Python и основных зависимостей, где бы я ни активировал среду, но извлекать выгоду из определенного локального контекста на некоторых машинах (например, HPC). - person FabienP   schedule 01.06.2019sbatch
со скриптом, подготовив среду, обновив conda и запустив скрипт. - person Yamaneko   schedule 10.06.2019