<UPDATE>
Ich habe IPython3 nie unter Windows zum Laufen gebracht, aber ich habe es geschafft, es (nach viel Frust) auf meinem lokalen CentOS-Server zum Laufen zu bringen, indem ich schließlich das absolut Unentbehrliche entdeckt habe virtualenv Werkzeug. Ich bin mir nicht sicher, ob virtualenv auch unter Windows funktioniert, aber ich bin zufrieden damit, IPython über SSH zu verwenden. </UPDATE>
Ich bin neu in Python und habe mich für Python 3.2 entschieden. Ich finde es toll, dass die Sprache mit einem integrierten interaktiven Interpreter ausgestattet ist, aber ich suche etwas, das mehr Funktionen bietet, und IPython scheint die Anforderungen zu erfüllen. Ich habe Distribute installiert und den folgenden Befehl aus meinem Verzeichnis C: \ Python32 \ Scripts \ verwendet, um das Ei abzurufen:
easy_install http://archive.ipython.org/release/0.11/py3/ipython-0.11-py3.2.egg
Dies wurde erfolgreich abgeschlossen, obwohl die Ausgabe inzwischen meine Scrollback-Schwelle überschritten hat, sodass ich sie hier nicht produzieren kann. ich rannte ipython3 --help
und produzierte den Hilfebildschirm, so dass ich weiß, dass zumindest ein Teil davon richtig installiert wurde. Wenn ich jedoch ausführen ipython3
Ich erhalte folgenden Fehler:
$ ipython3
Error in sys.excepthook:
TypeError: _isdir() takes exactly 1 argument (0 given)
Original exception was:
Traceback (most recent call last):
File "c:\Python32\Scripts\ipython3-script.py", line 9, in <module>
load_entry_point('ipython==0.11', 'console_scripts', 'ipython3')()
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\frontend\terminal\ipapp.py", line 369, in launch_new_instance
app.initialize()
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\frontend\terminal\ipapp.py", line 283, in initialize
self.init_shell()
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\frontend\terminal\ipapp.py", line 303, in init_shell
ipython_dir=self.ipython_dir)
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\config\configurable.py", line 295, in instance
inst = cls(*args, **kwargs)
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\frontend\terminal\interactiveshell.py", line 112, in __init__
user_global_ns=user_global_ns, custom_exceptions=custom_exceptions
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\core\interactiveshell.py", line 384, in __init__
self.db = PickleShareDB(os.path.join(self.profile_dir.location, 'db'))
File "C:\Python32\lib\site-packages\ipython-0.11-py3.2.egg\IPython\utils\pickleshare.py", line 52, in __init__
if not self.root.isdir():
TypeError: _isdir() takes exactly 1 argument (0 given)
Außer --help
Ich habe noch keine anderen Argumente gefunden, die diesen Fehler nicht erzeugen. Ich habe in C: \ Python32 \ lib \ site-packages \ ipython-0.11-py3.2.egg \ IPython \ nach "_isdir" gesucht und nur zwei Verweise darauf gefunden, und zwar in einer Datei mit dem Namen tempdir.py. Beide werden hier angezeigt:
# XXX (ncoghlan): The following code attempts to make
# this class tolerant of the module nulling out process
# that happens during CPython interpreter shutdown
# Alas, it doesn't actually manage it. See issue #10188
_listdir = staticmethod(_os.listdir)
_path_join = staticmethod(_os.path.join)
_isdir = staticmethod(_os.path.isdir)
_remove = staticmethod(_os.remove)
_rmdir = staticmethod(_os.rmdir)
_os_error = _os.error
def _rmtree(self, path):
# Essentially a stripped down version of shutil.rmtree. We can't
# use globals because they may be None'ed out at shutdown.
for name in self._listdir(path):
fullname = self._path_join(path, name)
try:
isdir = self._isdir(fullname)
Wenn Sie dasselbe Verzeichnis nach "isdir" durchsuchen, werden ungefähr 100 Übereinstimmungen zurückgegeben. Etwa 50% davon verwenden 1 Argument, der Rest 0. Ich bin mir nicht sicher, ob dies ein Problem mit der Vererbung oder dem Umfang ist oder was. Ich habe auch keine Ahnung, wie wichtig der vorangegangene Unterstrich ist. Durch Googeln von "TypeError: _isdir ()" werden keinerlei Übereinstimmungen zurückgegeben.
Irgendwelche Ideen?