当我在Mac OSX(10.9.5)上输入我的Downloads
目录时,我从终端输入Python并尝试使用import pandas as pd
导入pandas
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'
在我试过的其他目录中,这似乎导入大熊猫没有抱怨(包括随机系统目录,主目录和我的〜/ Documents目录)。
为什么ebook.csv只是在下载中出现问题?
答案 0 :(得分:1)
您的下载目录中似乎有一个名为token.py
的文件。
它是从标准库中导入而不是token.py
模块:
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'))
解决方案是重命名Downloads/token.py
文件,使其不会影响同名的标准库模块。
以上,该行
from token import *
告诉Python导入token
模块。通常,Python会从标准库token
中找到/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/token.py
模块。
将启动Python的目录作为第一个目录插入
在sys.path
。 Python按照的顺序在sys.path
中搜索模块
上市。从Downloads
目录启动Python时,此目录
成为Python搜索模块的第一个目录。所以你的
Downloads/token.py
文件正在导入而不是
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/token.py
(标准库)文件。
结论:永远不要将文件命名为与任何module from the standard library相同的文件。