0

我们正在使用 Azure Batch 应用程序,它将创建多个可用于并行运行我们的任务的 VM。我们正在使用 python 进行数据获取任务。

我们在批处理应用程序中提到过在虚拟机启动时在虚拟机上安装 anaconda。Anaconda 安装正确。我们列出了我们需要安装以运行任务的包(requirements.txt)。

pip install -r requirements.txt

一些包得到正确安装,但一些包导致以下错误,

 Error [Error 6] The handle is invalid while executing command python setup.py egg_info
Exception:
Traceback (most recent call last):
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\basecommand.py", line 209, in main
    status = self.run(options, args)
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\commands\install.py", line 310, in run
    wb.build(autobuilding=True)
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 591, in _prepare_file
    abstract_dist.prep_for_dist()
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 127, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_install.py", line 430, in run_egg_info
    command_desc='python setup.py egg_info')
  File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\utils\__init__.py", line 678, in call_subprocess
    cwd=cwd, env=env)
  File "C:\user\tasks\shared\anaconda2\lib\subprocess.py", line 702, in __init__
    errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
  File "C:\user\tasks\shared\anaconda2\lib\subprocess.py", line 823, in _get_handles
    p2cread = _subprocess.GetStdHandle(_subprocess.STD_INPUT_HANDLE)
WindowsError: [Error 6] The handle is invalid

当我们打开虚拟机并给出相同的命令时,所有的包都会正确安装。

我只是想知道问题出在哪里。

4

1 回答 1

0

该问题似乎是由 Azure Batch 服务的某些限制引起的,您可以在此处查看这些限制。

根据报错信息,似乎安装进程需要fork子进程,但是每个计算机节点的最大任务数是4,请看下图。

在此处输入图像描述

于 2016-04-11T08:13:35.413 回答