2014-03-06 21 views
8

Als ich import multiprocessing in Python 2.7.5 auf OS X 10.6.8 versuchen, ich diesen Fehler:Kann nicht Namen importieren _args_from_interpreter_flags

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/__init__.py", line 65, in <module> 
from multiprocessing.util import SUBDEBUG, SUBWARNING 
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/util.py", line 40, in <module> 
from subprocess import _args_from_interpreter_flags 
ImportError: cannot import name _args_from_interpreter_flags 

Ich habe auch versucht python2.7.6 mit homebrew zu installieren, aber dieser Fehler tritt immer noch auf.

Antwort

2

Es klingt wie ein circular import issue. Versuchen Sie, dies dem Rest Ihrer Importe:

from subprocess import _args_from_interpreter_flags 

Es gibt einen Kommentar über die Funktion in subprocess.py ist:

# XXX This function is only used by multiprocessing and the test suite, 
# but it's here so that it can be imported when Python is compiled without 
# threads. 

zusammenhängen.

+3

Danke. Es stellte sich heraus, dass in dem Code, den ich unterhalte, ein Modul "subprocess.py" vorhanden ist, das den Import von Multiprocessing fehlschlägt, da Multiprocessing das Subprozessmodul (in der Standard-Python-Bibliothek) importiert. Moral der Geschichte: 1. Benennen Sie Ihr Modul nicht nach einer Standard-Python-Bibliothek. 2. Seien Sie besonders vorsichtig beim Umgang mit alten Codes. (In meinem Fall wurde das Python-Programm, das ich ausführte, in der Python-2.3-Ära geschrieben. Ich denke also, der Autor wusste nicht, dass es ein "Subprozess" -Modul in der "zukünftigen" Version von Python geben würde, nannte dieses Modul "subprocess.py" "Durch Zufall." – LH2

+0

Was meinen Sie mit "zum * Rest * Ihrer Importe"? Indem ich sage, dass ich das zum "Rest" Ihrer Importe hinzufügen soll - wohin geht diese Importanweisung eigentlich? – Praxiteles

+0

@Praxiteles in der Regel importieren Anweisungen gehen ganz oben, ich nahm an, dass das OP einige verwendet hatte. –

Verwandte Themen