熊猫在下载目录中不起作用

时间:2016-07-04 17:21:07

标签: python macos pandas

当我在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只是在下载中出现问题?

1 个答案:

答案 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相同的文件。