在 Anjuta 中导入 pandas 失败“模块函数无法设置 METH_CLASS 或 METH_STATIC”

在 Anjuta 中导入 pandas 失败“模块函数无法设置 METH_CLASS 或 METH_STATIC”

我在运行的最小 Anjuta 应用程序中有此样板。我不想将 pandas 安装到系统 python 路径,因此我使用 Virtualenv。当我添加将 pandas 导入为 pd我收到以下错误消息。

不确定这是否与 Anjuta 或 Pandas 有关。我在 Google 上搜索了错误消息,但没有任何有用的信息。我该怎么办?

#!/home/USERNAME/my_app/bin/python3.6
import gi
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk, GdkPixbuf, Gdk
import os, sys, gi

...

from shutil import copyfile
import pandas as pd
...

我明白了。

EXECUTING:
/home/USERNAME/my_app/src/my_app.py 
----------------------------------------------
Traceback (most recent call last):
  File "/home/USERNAME/my_app/src/my_app.py", line 35, in <module>
    import pandas as pd
  File "/home/USERNAME/my_app/virtualenv_my_app/my_app/lib/python3.6/site-packages/pandas/__init__.py", line 57, in <module>
    from pandas.io.api import *
  File "/home/USERNAME/my_app/virtualenv_my_app/my_app/lib/python3.6/site-packages/pandas/io/api.py", line 19, in <module>
    from pandas.io.packers import read_msgpack, to_msgpack
  File "/home/USERNAME/my_app/virtualenv_my_app/my_app/lib/python3.6/site-packages/pandas/io/packers.py", line 69, in <module>
    from pandas.util._move import (
ValueError: module functions cannot set METH_CLASS or METH_STATIC

----------------------------------------------
Program exited with errcode (1)
Press the Enter key to close this terminal ... 

没有将 pandas 导入为 pd程序运行正常...

EXECUTING:
/home/USERNAME/my_app/src/my_app.py 
----------------------------------------------
/home/USERNAME/my_app/test.xlsx
----------------------------------------------
Program exited with errcode (0)
Press the Enter key to close this terminal ... 

相同将 pandas 导入为 pd如果从同一目录和同一虚拟环境中的命令行 python 脚本使用,则运行良好。此外,当通过 Anjuta 运行模式中的 subprocess.call() 调用时,它也可以运行。

我在 Ubuntu 18.04 上,并使用 apt 安装了 Anjuta,使用 pip install pandas 安装了 pandas。

答案1

这似乎是 python 3.6 的问题;我也遇到了同样的问题,只是我按照以下顺序使用 matlibplot、numpy 和 pandas:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

它给了我和你一样的错误,我重新安排了导入顺序,使其看起来像这样:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

现在运行良好。请参阅与此非常相关的 github 问题:https://github.com/pandas-dev/pandas/issues/23040引用今天最后一位发帖名为“AlfTang”的用户的话:

按照建议更改 pandas 导入顺序后,问题已解决。我怀疑原因是 python3.6。当我使用 python 3.5.2 时,一切正常。

相关内容