2017-03-01 1 views
1

J'essaie de vérifier le nombre de cœurs que mon script utilise avec la méthode 'os.sched_getaffinity' comme suggéré dans Why does multiprocessing use only a single core after I import numpy?. Mais quand je lancePython 3.6.0: le module 'os' n'a pas la méthode 'sched_getaffinity'

import os 
os.sched_getaffinity(0) 

Je reçois

AttributeError        
Traceback (most recent call last) <ipython-input-1-895d9c252fd1> in <module>() 
1 import os 
----> 2 os.sched_getaffinity(0) 
AttributeError: module 'os' has no attribute 'sched_getaffinity' 

Qu'est-ce qui ne va pas ici? D'autres méthodes standard du module 'os' semblent fonctionner. Je cours Anaconda 4.3.0 avec Python 3.6.0. J'ai essayé sur Mac et Linux. Des moyens alternatifs pour vérifier et modifier l'affinité de la tâche?

+4

Est-ce que vous appelez un fichier 'os.py' ou un dossier' os'? – user2357112

+3

Si vous pouviez fournir les empreintes Python de retraçage complet pour vous, cela faciliterait l'utilisation par les utilisateurs. Vous êtes probablement en train de masquer 'os' comme l'a dit user2357112, la traceback le vérifierait. –

+0

Merci pour les commentaires, j'ai édité la question. – Aki

Répondre

4

Les docs disent "Ils ne sont disponibles que sur certaines plateformes Unix". Je suppose que votre plate-forme n'est pas l'une des plates-formes supportées pour cet ensemble de fonctions. Vous pouvez vérifier ce qui est fourni en tapant

>>> import os 
>>> print(dir(os)) 

La fonction existe sur ma boîte Linux Debian, mais il est absent sur Windows et Mac OS X ainsi. Je ne sais pas pourquoi ce n'est pas là sur votre machine Linux. Peut-être que votre Linux est trop vieux?

Aussi simple google pour "affinité processus python" donne plusieurs alternatives

+0

Vous avez totalement raison, il semble que la méthode soit absente dans ma machine Linux. Je ne connaissais pas la commande 'dir (os)'. Je vous remercie! – Aki