当 io.py 位于同一目录中时,pandas ImportError C 扩展

2023-11-29

不确定这是否是 pandas 问题,或者我对绝对/相对导入缺乏了解。

$ python -c "import pandas; print pandas.__version__"
0.17.1
$ python -V
Python 2.7.12 :: Anaconda 2.4.1 (x86_64)

# this runs fine (ie it doesn't raise exception)
$ mkdir x; echo "import pandas" > x/main.py; python x/main.py

# make io.py in same directory
$ touch x/io.py

# now it fails
$ python x/main.py
Traceback (most recent call last):
  File "x/main.py", line 1, in <module>
    import pandas
  File "/Users/GS/anaconda/lib/python2.7/site-packages/pandas/__init__.py", line 13, in <module>
    "extensions first.".format(module))
ImportError: C extension: StringIO not built. If you want to import pandas from
the source directory, you may need to run 'python setup.py build_ext --inplace'
to build the C extensions first.

我也尝试使用全新安装的 python(不是来自 anaconda)进行相同的操作,结果是相同的。

标准库中的其他文件名也会发生同样的情况,例如x/string.py or x/re.py.

将文件重命名为,例如x/my_io.py正如下面的问题中所建议的,这是一种解决方法,但我想了解为什么会发生这种情况。

  • PyCharm,某些包无法导入Pandas,ImportError:C扩展:StringIO未构建

为什么会发生这种情况?机制是什么?


这似乎发生在numpy以及当有一个datetime.py file.

这是一次测试一堆组合的代码片段(我在这里使用(非 Anaconda)python):

$ parallel -k -j1  "\
echo \"=== {1} : {2} ===\";\
rm -r x; \
mkdir -p x/y/z;\
echo \"import {1}; print \\\"ok\\\";\" > x/y/z/main.py;\
python x/y/z/main.py;\
touch x/y/z/{2}.py;\
python x/y/z/main.py;\
" ::: numpy pandas ::: os sys re io logging datetime
=== numpy : os ===
ok
ok
=== numpy : sys ===
ok
ok
=== numpy : re ===
ok
ok
=== numpy : io ===
ok
ok
=== numpy : logging ===
ok
ok
=== numpy : datetime ===
ok
Traceback (most recent call last):
  File "x/y/z/main.py", line 1, in <module>
    import numpy; print "ok";
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
AttributeError: 'module' object has no attribute 'datetime_CAPI'
=== pandas : os ===
ok
ok
=== pandas : sys ===
ok
ok
=== pandas : re ===
ok
ok
=== pandas : io ===
ok
Traceback (most recent call last):
  File "x/y/z/main.py", line 1, in <module>
    import pandas; print "ok";
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/__init__.py", line 22, in <module>
    from pandas.compat.numpy import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/compat/__init__.py", line 350, in <module>
    from dateutil import parser as _date_parser
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dateutil/parser.py", line 37, in <module>
    from io import StringIO
ImportError: cannot import name StringIO
=== pandas : logging ===
ok
Traceback (most recent call last):
  File "x/y/z/main.py", line 1, in <module>
    import pandas; print "ok";
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/__init__.py", line 43, in <module>
    from pandas.io.api import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/api.py", line 18, in <module>
    from pandas.io.gbq import read_gbq
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/gbq.py", line 59, in <module>
    logger = logging.getLogger('pandas.io.gbq')
AttributeError: 'module' object has no attribute 'getLogger'
=== pandas : datetime ===
ok
Traceback (most recent call last):
  File "x/y/z/main.py", line 1, in <module>
    import pandas; print "ok";
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/__init__.py", line 13, in <module>
    __import__(dependency)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
AttributeError: 'module' object has no attribute 'datetime_CAPI'

默认情况下,第一个元素sys.path是一个空字符串,表示顶层脚本的目录。因此,如果该目录中有任何与标准库模块同名的模块,它们将覆盖标准模块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 io.py 位于同一目录中时,pandas ImportError C 扩展 的相关文章

  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 如何从pandas中的多列计算多列

    我正在尝试使用函数从 pandas 数据框中的多个列计算多个列 该函数采用三个参数 a b 和 c 并返回三个计算值 sum prod 和 quot 在我的 pandas 数据框中 我有三个列 a b 和 c 我想从中计算列 sum pro
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • pyspark 将行转换为带有 null 的 json

    Goal 对于具有模式的数据框 id string Cold string Medium string Hot string IsNull string annual sales c string average check c strin
  • 如何在clip()之后在canvas中执行clearRect()?

    我需要在画布中执行clip 后执行clearRect 不幸的是 它对我不起作用 如果我排除 Clip 的意思 则clearRect 工作得很好 我需要在执行clip 后执行clearRect 这可能吗 请找到fidd
  • Scrum:任务依赖性和架构设计任务[关闭]

    Closed 这个问题是无关 目前不接受答案 我有一些 Scrum 问题 任务依赖性 我读过的大多数书籍似乎都将任务视为彼此独立的 一个程序员的任务不会影响另一个程序员的任务 因此可以并行运行 如何处理依赖于另一项任务的任务 任务基于故事
  • UIImagePickerControllerDelegate 未正确响应

    我在 iPhone 3Gs 上使用 iOS 4 2 1 中的 UIImagePickerController 我之前使用过已弃用的方法 void imagePickerController didFinishPickingImage edi
  • 使用事件处理程序更改背景颜色

    我正在尝试创建一个简单的表单 其中将三个 div 堆叠在一起 单击每个框时 它们的颜色需要更改 一红 一绿 一蓝 我只需要使用一个事件处理程序来完成此操作 我被我的代码困住了 我希望你们中的一位能指导我完成这个任务 我真的很感激 这是我的代
  • MIPS 装配标签

    MIPS 的组件会读取每个标签吗 忽略任务和语法 我只是快速地将一些东西放在一起 add reg3 reg1 zero add reg1 reg1 reg2 beq reg1 reg3 BRANCH1 reg2 contents are z
  • 如何在 Windows 机器上的 Python 3.4 中安装 lxml

    我已经花了几个小时在这上面 我是 Python 新手 不知道解决方案是什么 我有 Python 3 4 并且想要使用 docx 这需要lxml 到目前为止我所做的工作流程是 我转到Pythonlxml软件包安装程序页面 但很难知道我需要哪个
  • MongoDB 中的 $unwind 运算符是什么?

    这是我使用 MongoDB 的第一天 所以请慢慢来 我无法理解 unwind接线员 也许是因为英语不是我的母语 db article aggregate project author 1 title 1 tags 1 unwind tags
  • 使用 Jquery 和 '.css' 的 CSS 动画

    所以我有一段代码 目的是播放从中选择的动画动画 css on click The code container gt parent click function element css animation fadeInUp 2s webki
  • 如何重新发送失败的ajax请求?

    我有多个 ajax 请求 每分钟有一些请求数据 其他请求由用户通过 ui 发起 get myurl data done function data do stuff 由于身份验证失败 请求可能会失败 我已经设置了一个全局 ajaxError
  • 如何排除故障 - ImportError: 部署 django 时无法导入设置“mysite.settings”?

    我已经根据 apache 部署说明部署了 django 应用程序 并且与 apache 和 mod python 完美配合 但由于我稍微改变了项目结构 我一直无法让它工作 无论我尝试什么 我都会不断收到以下页面 MOD PYTHON ERR
  • 段落行上单独的背景颜色 - CSS

    I am trying to add background color on lines of title But I can t make it perfect as my client needs me to do My client
  • 无限循环数据库检查

    我正在使用 JDBC 需要不断检查数据库是否有更改的值 我目前拥有的是一个无限循环运行 内部循环迭代不断变化的值 并且每次迭代都会检查数据库 public void runInBG this method called from anoth
  • Jackson - 使用自我引用序列化实体

    我有以下实体 Entity Table name registry entry JsonIgnoreProperties ignoreUnknown true public class RegistryEntry extends Gener
  • Python对包含整数和内部有整数的字符串的列表进行排序

    我如何使用 python 对列表格式进行排序 format 12 sheet 4 sheet 48 sheet 6 sheet busrear phonebox train 像这样 format 4 sheet 6 sheet 12 she
  • 如何在 cc:implementation 中引用 cc:attribute 中声明的值

    我有一个简单的 JSF 2 0 复合组件示例
  • 如何获取Hibernate配置属性?

    我正在使用 hibernate 和 jpa 它是用 persistence xml 配置的 是否可以从 Web 应用程序获取休眠连接属性 Thanks 如果不使用反射并依靠 Hibernate 来保证将来不会破坏您的代码 可能就不行了 您需
  • 如何使标签静态化

    所以我有一个程序 我在其中告诉用户两个骨架是否匹配 但问题是我需要访问label via a class 我不断收到的错误是 Error1 An object reference is required for the non static
  • 如何防止bash中的for循环中的文件名扩展

    在这样的 for 循环中 for i in cat input do echo i done 如果输入文件之一包含类似的条目 a 它会 并且给出 以 a 结尾的文件名 有没有一种简单的方法来防止这种文件名扩展 由于使用多个文件 通配符 se
  • 当 io.py 位于同一目录中时,pandas ImportError C 扩展

    不确定这是否是 pandas 问题 或者我对绝对 相对导入缺乏了解 python c import pandas print pandas version 0 17 1 python V Python 2 7 12 Anaconda 2 4