2016-04-08 2 views
0

Wir verwenden Azure Batch Apps, mit denen mehrere VMs erstellt werden, mit denen unsere Tasks parallel ausgeführt werden können. Wir verwenden Python für Datenabrufaufgaben.Azure Batch Apps installieren Python-Pakete beim Start

Wir haben in den Batch-Anwendungen erwähnt, Anaconda auf den VMs zu installieren, wenn sie starten. Anaconda ist richtig installiert. Wir haben die Pakete aufgelistet (requirements.txt), die wir installieren müssen, um die Aufgaben auszuführen.

pip install -r requirements.txt 

Einige Pakete wurden installiert Correclty, aber einige Pakete führen zu dem folgenden Fehler,

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 

Wenn wir die VM öffnen und den gleichen Befehl geben, alle Pakete korrekt installiert werden.

Ich frage mich nur, wo das Problem ist.

+0

Könnten Sie Ihre requirements.txt teilen? –

+0

Ich traf das gleiche Problem bei der Installation unter Anforderungen: - Kryptografie - Azure-Batch - Azure-Speicher – hula100

Antwort

0

Es scheint, dass das Problem durch bestimmte Einschränkungen für den Azure Batch-Dienst verursacht wurde. Sie können diese Grenzwerte anzeigen here.

Nach den Fehlerinformationen scheint der Installationsprozess den Unterprozess zu forcieren, aber die maximale Anzahl von Aufgaben pro Computerknoten ist 4, siehe unten.

enter image description here

+0

Diese Grenze ist nur im Kontext der geplanten Aufgaben durch die Batch-API (dh AddTask) nicht die Anzahl der Prozesse, die verzweigt werden können/erstellt auf dem Knoten. Das bedeutet, dass die geplante Aufgabe selbst eine beliebige Anzahl von Unterprozessen hervorbringen kann. – fpark