2017-03-01 90 views
1

Why does multiprocessing use only a single core after I import numpy?で提案されているように、スクリプトで使用しているコアの数を 'os.sched_getaffinity'メソッドで確認しようとしています。しかし、私はPython 3.6.0: 'os'モジュールに 'sched_getaffinity'メソッドがありません

import os 
os.sched_getaffinity(0) 

を実行したときに、私は

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' 

取得ここで何が間違っているだろうか? 'os'モジュールからの他の標準的なメソッドはうまくいくようです。 Python 3.6.0でAnaconda 4.3.0を実行しています。私はMacとLinuxの両方で試しました。タスクの親和性を確認して変更するための代替方法はありますか?

+4

を与えるあなたはファイル 'os.py'またはフォルダ' os'を呼んでいましたか? – user2357112

+3

完全なトレースバックPythonプリントを提供できれば、人々の手助けが楽になります。 user2357112が言ったように、おそらく 'os'をマスキングしているだけで、トレースバックはそれを確認します。 –

+0

フィードバックのおかげで、私は質問を編集しました。 – Aki

答えて

4

ドキュメントは、「それらは一部のUnixプラットフォームでのみ利用可能です」と述べています。私はあなたのプラットフォームがこれらの機能のセットでサポートされているものではないと思います。提供されているものを確認することができます

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

私のDebian Linuxボックスには機能はありますが、WindowsとOSXには存在しません。あなたのLinuxボックスになぜそれがないのか分かりません。おそらくあなたのLinuxは古すぎるでしょうか?

また「Pythonのプロセスの親和性」のためのシンプルなGoogleはいくつかの選択肢

+0

あなたは完全に正しいです、私のLinuxボックスにはメソッドが存在しないようです。私は 'dir(os)'コマンドを知らなかった。ありがとうございました! – Aki

関連する問題