2016-07-04 2 views
0

Wenn ich meine Downloads Verzeichnis auf Mac OSX (10.9.5) eingeben, ich Python von meinem Terminal eingegeben und versucht, Pandas zu importieren import pandas as pdPandas arbeiten nicht in Downloads Verzeichnis

name:Downloads name$ python 
Python 2.7.5 (default, Mar 9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pandas as pd 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Python/2.7/site-packages/pandas/__init__.py", line 22, in <module> 
    from pandas.compat.numpy import * 
    File "/Library/Python/2.7/site-packages/pandas/compat/__init__.py", line 38, in <module> 
    import inspect 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 39, in <module> 
    import tokenize 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tokenize.py", line 30, in <module> 
    from token import * 
    File "token.py", line 7, in <module> 
    reader = csv.reader(open('ebook.csv', 'rb')) 
IOError: [Errno 2] No such file or directory: 'ebook.csv' 

In anderen Verzeichnissen Ich habe obwohl versucht, scheint dies zu importieren Pandas gut ohne Beschwerde (einschließlich zufällige System-Verzeichnisse, das Home-Verzeichnis und meine ~/Dokumente-Verzeichnis).

Warum ist ebook.csv einfach ein Problem in den Downloads?

Antwort

1

Es scheint, als ob Sie eine Datei namens token.py in Ihrem Downloads-Verzeichnis haben. Es wird immer anstelle des token.py Modul aus der Standardbibliothek importiert:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tokenize.py", line 30, in <module> 
    from token import * 
    File "token.py", line 7, in <module> 
    reader = csv.reader(open('ebook.csv', 'rb')) 

Die Lösung ist die Downloads/token.py Datei umbenennen, damit es nicht die Standard-Bibliothek-Modul mit dem gleichen Namen ist Schatten.


Oben die Linie

from token import * 

Python erzählt die token Modul zu importieren. Normalerweise würde Python das Modul token aus der Standardbibliothek /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/token.py finden.

Das Verzeichnis, aus dem Sie Python starten als in sys.pathersten Verzeichnis eingefügt. Python sucht sys.path für Module in der Reihenfolge sind sie aufgeführt. Wenn Sie Python aus dem Verzeichnis Downloads starten, wird dieses Verzeichnis zum ersten von Python für Module durchsuchten Verzeichnis. So wird Ihre Downloads/token.py Datei anstelle der /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/token.py (Standardbibliothek) Datei importiert.


Fazit: Nennen Sie nie eine Datei die gleiche wie alle module from the standard library.

+0

Vielen Dank! Das Problem lag im 'Downloads'-Verzeichnis, nicht 'Documents', aber Ihre Logik und Erklärung wurde noch vollständig übernommen und es stellte sich heraus, dass ich' 'token.py'' im 'Downloads'-Verzeichnis hatte haha ​​ – rzs

+0

Ah, danke für die Korrektur. – unutbu