pandasql不会导入:ImportError:无法导入名称to_sql

时间:2015-04-20 18:17:19

标签: python mysql sql pandas pandasql

我在linux命令提示符下用pip安装了pandasql,并启动了ipython notebook:

felix@xanadu ~ $ sudo pip install pandasql
[sudo] password for felix: 
Downloading/unpacking pandasql
  Downloading pandasql-0.6.2.tar.gz
  Running setup.py (path:/tmp/pip_build_root/pandasql/setup.py) egg_info for package pandasql

Installing collected packages: pandasql
  Running setup.py install for pandasql

Successfully installed pandasql
Cleaning up...
felix@xanadu ~ $ ipython notebook

然后尝试在ipython笔记本中导入pandas:

import pandas    
import pandasql

..它并不开心,环顾四周但似乎没有任何答案。这是它给出的错误消息:

--------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-c9fa37159ca4> in <module>()
      1 import pandas
----> 2 import pandasql

/usr/local/lib/python2.7/dist-packages/pandasql/__init__.py in <module>()
----> 1 from .sqldf import sqldf
      2 import os
      3 import pandas as pd
      4 
      5 

/usr/local/lib/python2.7/dist-packages/pandasql/sqldf.py in <module>()
      2 import pandas as pd
      3 import numpy as np
----> 4 from pandas.io.sql import to_sql, read_sql
      5 import re
      6 import os

ImportError: cannot import name to_sql

有没有人有任何想法?干杯

1 个答案:

答案 0 :(得分:1)

你一定要升级到pandas 0.16.0:

sudo pip install -U pandas

我刚查看了0.13.10.16.0pandas/io/sql.py的源代码,旧版本中没有to_sql()read_sql()方法,虽然它们存在于最新版本中。


要在评论中总结我们的对话,为了成功构建pandas,您需要安装系统中的gccg++python-dev个软件包包管理器(apt-getyumzypper,等等。如果您正在为Python 3构建,则需要python3-dev包。

如果您使用的是Windows和Python的标准python.org版本,最简单的方法是使用Christoph Gohlke的Python Extension Packages for Windows repository。许多软件包依赖于MKL - numpy的关联版本,包括pandas。所有这些软件包的好处在于它们是针对32位和64位版本的Python进行预编译的,并且通常可用于Python 2.7,3.3和3.4(当然,取决于软件包 - 一些避风港)还没有被移植到Py3)。它们以.whl格式提供,因此安装/升级就像

一样简单
pip install -U name_of_package.whl