Die Tatsache, dass der Dateiname mit .so
endet, bedeutet, dass es ein Erweiterungsmodul ist, das in C geschrieben ist (anstatt eines normalen Python-Moduls). Wenn Sie sich den Quellcode ansehen möchten, laden Sie die Python-Quelle herunter und schauen Sie sich Modules/itertoolsmodule.c
an (Sie können sie auch in Ihrem Browser unter Ссылка ).
Bearbeiten (als Antwort auf den Kommentar unten): funktioniert auch mit Python 2.5:
%Vor%Wenn Sie nach der Quelle suchen (natürlich in C), ist es zum Beispiel online hier .
Für die Windows-Benutzer (ich benutze Python 2.7.2, Win7x64, Standard-Installer-Paket) wird der Aufruf von __file__
ausflammen, wie @ zjm1126 bemerkt hat, ich vermute das Problem, dass itertools
ein eingebauter ist auf dem Windows-Paket. Wenn Sie sagen, exceptions
? Sie würden das gleiche Verhalten auf einer anderen Plattform (z. B. Python 2.6.1 auf meinem Macbook) bekommen - Windows hat nur ein paar mehr Builtins wie Itertools.
Es ist nicht unbedingt eine Antwort als solche, aber Sie könnten sys.modules
parsen, was Ihnen einen Hinweis darauf geben könnte, woher es kommt:
zeigt auf iertools, die in Ihre ausführbare Python-Datei integriert sind.
Auch die imp.find_module-Antwort liefert die gleichen Informationen: Das seltsame Rücktupel ist nach Spezifikation (siehe: Ссылка ) und teilt Ihnen mit, dass das Modul vom Typ 6 ist, was die Aufzählung für imp.C_BUILTIN
probiere das
aus %Vor%Aktualisierung: Da Ihre keine ist, gehen andere durch einen manuellen Weg. Führe einen sys.path aus
%Vor%Verwenden Sie dann je nach System die Suchfunktion Ihres Systems, um sie zu finden. auf meinem Linux-System
%Vor%ODER suchen Sie einfach im gesamten System nach der Datei mit dem Namen " itertools ".