Импорт панд: 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.
Я попробовал следующие решения:
- Клонирование панд из git и запуск SETUP.py (на экземпляре python 3.6, установленном непосредственно в моей ОС win10)
- Использование Anaconda в качестве дистрибутива Python и Conda для установки панд
- Обновление Microsoft Visual C++ 2017 распространяемый
- Обновление 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.