Не удается импортировать панд в 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 все работало нормально.