Не удается импортировать панд в Anjuta "функции модуля не могут установить METH_CLASS или METH_STATIC"

У меня есть этот шаблон в минимальном приложении Anjuta, которое работает. Я не хочу устанавливать панд в системный путь к Python, поэтому я использую Virtualenv. Когда я добавляю pandas импорта как pd, я получаю следующее сообщение об ошибке.

Не уверен, что это связано с Анютой или Пандой. Я погуглил сообщение об ошибке, но ничего не помогло. Что я делаю?

#!/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 ... 

без импорта панд в качестве 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 ... 

Те же панды импорта, что и pd, работают нормально, если они используются из сценария Python командной строки из того же каталога и того же virtualenv. Также он запускается при вызове через subprocess.call() из режима запуска Anjuta.

Я на Ubuntu 18.04 и установил Anjuta с apt, pandas с pip install pandas.

1 ответ

Решение

Вроде бы проблема с питоном 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":

Проблема устранена путем изменения порядка импорта панд, как предложено. Я подозреваю, что причиной является python3.6. Когда я использовал Python 3.5.2 все работало нормально.

Другие вопросы по тегам