Импорт панд: ModuleNotFoundError: нет модуля с именем "pandas._libs.tslib"

Всякий раз, когда я пытаюсь импортировать панд, будь то в virtualenv или иным образом, я всегда получаю эту ошибку.

Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 19 2017, 08:03:39) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 26, in <module>
from pandas._libs import (hashtable as _hashtable,
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\_libs\__init__.py", line 3, in <module>
from .tslib import iNaT, NaT, Timestamp, Timedelta, OutOfBoundsDatetime
ModuleNotFoundError: No module named 'pandas._libs.tslib'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 35, in <module>
"the C extensions first.".format(module))
ImportError: C extension: No module named 'pandas._libs.tslib' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.

Я попробовал следующие решения:

  1. Клонирование панд из git и запуск SETUP.py (на экземпляре python 3.6, установленном непосредственно в моей ОС win10)
  2. Использование Anaconda в качестве дистрибутива Python и Conda для установки панд
  3. Обновление Microsoft Visual C++ 2017 распространяемый
  4. Обновление C:\ProgramData\Anaconda3\Lib\site-packages\PyInstaller\hooks\hook-pandas.py

Ни один из них, кажется, не работает. Пожалуйста, помогите мне понять, в чем проблема.

5 ответов

Это исключение:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 35, in <module>
"the C extensions first.".format(module))
ImportError: C extension: No module named 'pandas._libs.tslib' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first

предполагает, что панды не были построены должным образом во время установки.

Последнее предложение:

Если вы хотите импортировать панд из исходного каталога, вам может потребоваться запустить python setup.py build_ext --inplace --force сначала построить расширения C

Это действительно то, что вам следует делать, если вы вносите свой вклад в исходный код pandas (например, для исправления ошибки в pandas или добавления функции к самой pandas) в репозиторий pandas-dev github*.
Скорее всего, вы не должны строить из источника в вашем проекте.

Вообще-то, anaconda довольно хорошо правильно устанавливает панд, поэтому мое предположение / комментарий было таким:

Я предполагаю, что виртуальный env не использует anaconda, и установка pandas испорчена (возможно, создана перед установкой anaconda?). Я бы удалил этот каталог C:\Users\ishan\AppData\Roaming\Python\Python36 и посмотрим, поможет ли это

Причина, по которой я предложил этот каталог, заключалась в том, что он был в сообщении об ошибке, и он не похож на то, где я ожидаю установки панд в anaconda (как правило, так и в виде virtualenv).


* Примечание: это что-то забавное, чтобы поделиться с сообществом панд: есть некоторые висячие фрукты, опечатки или изменения кода, поэтому я рекомендую выяснить, есть ли способ, которым вы можете внести свой вклад.

Если вы используете дистрибутив Conda (например, AnaConda, MiniConda), как кажется, может помочь удаление и переустановка Pandas.

Выполните следующие команды в консоли cmd:

conda uninstall pandas

conda install pandas

С тех пор tslib устарела для последней версии панд. попробуйте удалить pd.tslib.Dataframe и заменить pd.DataFrame, где когда-либо tslib присутствует в библиотеке ggplot. оно работает!!

Вы можете найти пакеты в файле lib папки ggplot.

Спасибо!

Я сталкиваюсь с той же ошибкой при настройке Python, Keras и всего, что между. Справочная информация: я установил anaconda и следовал инструкциям https://www.youtube.com/watch?v=z0qhKP2liHs и инструкции по переходу на python 3.6 от http://docs.anaconda.com/anaconda/user-guide/faq/

При запуске из Jupyter я столкнулся с той же проблемой, что и автор. Мне удалось решить эту проблему следующим образом: - загрузить версию pandas для python 3.6 по https://docs.anaconda.com/anaconda/packages/py3.6_win-64/

  • тогда я запускаю python из командной строки.. это сработало

  • тогда я тестировал с PyCharm .. он работал

Похоже, что либо комбинация Anaconda&Jupyter не сработала, либо выбрал версию pandas.

Не уверен, что это исчерпывающий ответ, но кажется связанным.

У меня возник этот вопрос, когда я собирал Python из исходного кода (возможно, вы тоже?) И затем использовал его для создания установщика для своего приложения - в какой-то момент мне удалось получить исключение из OP:

ImportError: C extension: No module named 'pandas._libs.tslib' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.

Затем я попытался импортировать рассматриваемый модуль из недавно открытого Python REPL (т.е. import pandas._libs.tslib). Это оказалось полезным усилием, так как то, что я получил, было ошибкой, скорее всего, из-за отсутствия _bz2.

К тому времени я уже установил большое количество пакетов Linux, которые должны были присутствовать перед запуском Python, чтобы они были включены (для pip чтобы работать хорошо, например), и казалось очевидным, что я просто пропустил еще один пакет.

Действительно, как было обнаружено здесь в ответ на эту ошибку, простой

sudo apt-get install libbz2-dev

и перезапуск ./configure, make, make install поставили меня в ситуацию, когда наконец панды захотели загрузиться.

Однако теперь он жалуется на отсутствие lzma расширение :) такова жизнь:

UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.

С моей точки зрения, это, наконец, кажется мягкой ошибкой (приложение запускается ура!)

Мое предположительное объяснение состоит в том, что из-за отсутствия bzip2, доступного для Python во время сборки, а затем его отсутствия, Pandas дает слегка вводящую в заблуждение ошибку и не может загружаться, независимо от того, правильно ли он оценивает это как ошибку остановки шоу. Возможно, это такая редкая ситуация, что с тех пор, когда это было обычным / интуитивно понятным для исправления, они, возможно, перестали поддерживать это, и теперь этого недостаточно для телевидения?


Обновление : если кому-то интересно, предупреждение о зависимости lzma можно устранить с помощью sudo apt-get install liblzma-devсм. UserWarning: не удалось импортировать модуль lzma. Ваш установленный Python является неполным и перестраивается в моем случае Python, а затем упакованное приложение PyInstaller, кстати, где-то в последовательности это включает переустановку Pandas.

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