Как выполнить права Python для импорта установленного пакета tenorflow.transform? - PullRequest
0 голосов
/ 05 марта 2020

Версия моего Python: 2.7.13.

Я запускаю следующее в Jupyter Notebook.

Сначала я установил пакеты

%%bash
pip uninstall -y google-cloud-dataflow
pip install --upgrade --force tensorflow_transform==0.15.0  apache-beam[gcp]

Затем

%%bash
pip freeze | grep -e 'flow\|beam'

Я вижу, что установлен пакет tenorflow-transform.

apache-beam==2.19.0
tensorflow==2.1.0
tensorflow-datasets==1.2.0
tensorflow-estimator==2.1.0
tensorflow-hub==0.6.0
tensorflow-io==0.8.1
tensorflow-metadata==0.15.2
tensorflow-probability==0.8.0
tensorflow-serving-api==2.1.0
tensorflow-transform==0.15.0

Однако, когда я пытался импортировать его, появляются предупреждения и ошибки.

WARNING:tensorflow:From /usr/local/lib/python2.7/dist-packages/tensorflow_estimator/python/estimator/api/_v1/estimator/__init__.py:12: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.


ImportErrorTraceback (most recent call last)
<ipython-input-3-26a4792d0a76> in <module>()
      1 import tensorflow as tf
----> 2 import tensorflow_transform as tft
      3 import shutil
      4 print(tf.__version__)

ImportError: No module named tensorflow_transform

После некоторого исследования, я думаю, у меня есть некоторые идеи о проблеме. Я запускаю это:

%%bash
pip show tensorflow_transform| grep Location

Это вывод

Location: /home/jupyter/.local/lib/python3.5/site-packages

Я попытался изменить $ PATH, добавив /home/jupyter/.local/lib/python3.5 / site-packages к началу $ PATH. Тем не менее, мне все еще не удалось импортировать тензор потока_трансформа.

Основываясь на вышеизложенной и следующей информации, я думаю, что когда я запустил команду импорта, она выполняет Python 2.7, а не Python 3.5

import sys
print('\n'.join(sys.path))

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/local/lib/python2.7/dist-packages/IPython/extensions
/home/jupyter/.ipython

Кроме того,

import sys
sys.executable

'/usr/bin/python2'

Я думаю, что проблема в том, что пакет tenorflow_transform был установлен в /home/jupyter/.local/lib/python3.5/site-packages. Но когда я запускаю «Импорт», он идет в /usr/local/lib/python2.7/dist-packages для поиска пакета, а не /home/jupyter/.local/lib/python3.5 / site-packages, поэтому даже обновление $ PATH не помогает. Я прав?

Я пытался обновить python, но

%%bash
pip install upgrade python

Defaulting to user installation because normal site-packages is not writeable

Затем я добавил --user. Кажется, что python на самом деле не обновляется.

%%bash
pip install --user upgrade python

%%bash
python -V

Python 2.7.13

Любое решение?

1 Ответ

0 голосов
/ 06 апреля 2020

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

. Вы можете выбрать другой интерпретатор, нажав: Python ( ваша версия *). 1004 *) - внизу слева.

VS-код - Выбрать Python Среда 1

Однако вы можете сделать это также с помощью:

CNTRL + SHIFT + P> Выберите Python Интерпретатор для запуска Jupyter Server

Если это не сработает, убедитесь, что пакет, который вы пытаетесь импортировать, установлен в правильной среде python.

Если не открыть терминал, активируйте среду и установите ее, используя:

pip install packagename

Например, я сделал то же самое здесь: (Примечание: я использую Anaconda) установка tensorflow_transform

После установки вы можете импортировать его в свой код, например, следующим образом: импортировать tenorflow_transform

...