code: def test_torch_distributed_launch_2(version):
      """
      测试用户自己不初始化 ddp，但是使用 torch.distributed.launch 启动；
      """
      from fastNLP.core.drivers.torch_driver.ddp import (
          find_free_network_port,
      )
  
      path = Path(os.path.abspath(__file__)).parent
      command = [
          "python",
          "-m",
          "torch.distributed.launch",
          "--nproc_per_node",
          "2",
          "--master_port",
          find_free_network_port(),
          f"{path.joinpath('_test_distributed_launch_torch_2.py')}",
          "-v",
          f"{version}",
      ]
      subprocess.check_call(command, env=os.environ)
  
imports: import os.path
  import subprocess
  import sys
  import pytest
  from dataclasses import dataclass
  from typing import Any
  from pathlib import Path
  from fastNLP.core.controllers.trainer import Trainer
  from tests.helpers.models.torch_model import TorchNormalModel_Classification_1, TorchNormalModel_Classification_3
  from tests.helpers.datasets.torch_data import TorchNormalDataset_Classification
  from tests.helpers.callbacks.helper_callbacks import RecordLossCallback
  from tests.helpers.callbacks.helper_callbacks_torch import RecordAccumulationStepsCallback_Torch
  from tests.helpers.utils import magic_argv_env_context, Capturing
  from fastNLP.envs.distributed import rank_zero_rm
  from fastNLP.envs.imports import _NEED_IMPORT_TORCH, _TORCH_GREATER_EQUAL_1_12
label_desc: Use image node_id 8 for calling a global function with example usage: test_torch_distributed_launch_2(version) without return types