从 setup.py 安装时无法在 Google Colab 中导入 Tensorflow 2.2.0rc2
Cant import Tensorflow 2.2.0rc2 in Google Colab when installed from setup.py
我正在尝试在 Google Colab 中导入最新的 rc2 版本的 Tensorflow(目前为 2.2.0rc2),但是从我的 setup.py 安装脚本安装时无法执行此操作。
当我使用 !pip install tensorflow==2.2.0rc2
从 Colab 单元手动安装 Tensorflow 时,一切正常,我能够导入 Tensorflow。
接下来是我如何在 Google Colab 中安装依赖项:
# Executes the cell in bash mode
%%bash
if [ ! -d "/content/deep-deblurring/" ];
then
git clone https://github.com/ElPapi42/deep-deblurring;
cd deep-deblurring/
else
cd deep-deblurring/;
git pull;
fi;
git checkout development
cd ..
pip uninstall -y tensorflow tensor2tensor tensorboard tensorboardcolab tensorflow-datasets tensorflow-estimator tensorflow-gan tensorflow-hub tensorflow-metadata tensorflow-privacy tensorflow-probability
pip install colab-env
pip install --upgrade grpcio
cd deep-deblurring/
python setup.py install
cd ..
下一个是我的setup.py文件:
#!/usr/bin/python
# coding=utf-8
"""Setup and install the package and all the dependencies."""
from setuptools import setup, find_packages
with open('requirements.txt') as pro:
INSTALL_REQUIRES = pro.read().split('\n')
setup(
author='Whitman Bohorquez, Mo Rebaie',
author_email='whitman-2@hotmail.com',
name='deblurrer',
license='MIT',
description='Image Deblurring using Deep Learning Architecture',
version='1.0.0',
url='',
packages=find_packages(),
include_package_data=True,
python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
classifiers=[
'Development Status :: Alpha',
'Programming Language :: Python',
'Programming Language :: Python :: 3.6',
'Intended Audience :: Developers',
],
)
接下来是存储库中的 requirements.txt:
grpcio == 1.27.2
kaggle
numpy
tensorflow >= 2.2.0rc2
pandas
实际上,Google Colab 附带 Tensorflow 2.2.0rc1,但我想要 rc2。当我执行时:
import tensorflow as tf
print(tf.__version__)
在执行setup.py安装脚本之前,导入工作正常。但是使用setup.py安装完成后,抛出错误ImportError: No module named 'tensorflow'
。
我检查了python setup.py install
执行前后的tensorflow安装,似乎一切正常,安装前tensorflow 2.2.0rc1,安装后2.2.0rc2。
正如我首先提到的,当我使用 !pip install tensorflow==2.2.0rc2
手动安装 tensorflow 时,导入工作正常,所以问题一定是围绕 setup.py
文件或需求,类似的东西,但我没有看到它.
希望大家帮帮忙!
PD:这个项目设置在上周的星期五工作,但今天我尝试 运行 它,突然停止工作,没有明显的原因。
PD2:https://colab.research.google.com/drive/1Qv8h4ceEtDTq5lvt1uKJG8dk53_bUqBZ这是我与您分享的 Colab Notebook,它设置了重现问题的代码。
PD3:这是导入 tensorflow 时 Google Colab 中的完整错误回溯:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_spec(name, path, target)
AttributeError: '_TensorflowImportHook' object has no attribute 'find_spec'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
2 frames
<ipython-input-7-69e5d056d1fc> in <module>()
----> 1 import tensorflow as tf
2
3 tf.__version__
/usr/local/lib/python3.6/dist-packages/google/colab/_import_hooks/_tensorflow.py in find_module(self, fullname, path)
26 if fullname != 'tensorflow':
27 return None
---> 28 self.module_info = imp.find_module(fullname.split('.')[-1], path)
29 return self
30
/usr/lib/python3.6/imp.py in find_module(name, path)
295 break # Break out of outer loop when breaking out of inner loop.
296 else:
--> 297 raise ImportError(_ERR_MSG.format(name), name=name)
298
299 encoding = None
ImportError: No module named 'tensorflow'
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------
我找到了解决方法,但这不是解决这个问题的方法,所以这不会被接受为解决方案,但会帮助遇到同样麻烦的人继续他们的工作:
在安装自定义包之前手动安装您的要求,在我的例子中,这是 pip install -r "/content/deep-deblurring/requirements.txt"
:
# Executes the cell in bash mode
%%bash
if [ ! -d "/content/deep-deblurring/" ];
then
git clone https://github.com/ElPapi42/deep-deblurring;
cd deep-deblurring/
else
cd deep-deblurring/;
git pull;
fi;
git checkout development
cd ..
pip uninstall -y tensorflow tensor2tensor tensorboard tensorboardcolab tensorflow-datasets tensorflow-estimator tensorflow-gan tensorflow-hub tensorflow-metadata tensorflow-privacy tensorflow-probability
pip install colab-env
pip install --upgrade grpcio
pip install -r "/content/deep-deblurring/requirements.txt"
cd deep-deblurring/
python setup.py install
cd ..
目前这解决了导入问题,但这不是一个干净的解决方案,希望以后有更好的解释!
tensorflow
没有问题,但是 Colab 的 _TensorflowImportHook
缺少 find_spec
impl,所以如果 tensorflow
安装为 egg 目录,它会引发。由于挂钩除了发出将 tensorflow
更新为 2.0 和 is scheduled for removal anyway 的通知之外没有做任何有用的事情,所以一个简单的修复方法是从笔记本开头某处的 sys.meta_path
清除它:
[1] import sys
sys.meta_path[:] = [hook for hook in sys.meta_path if not h.__class__.__name__ == '_TensorflowImportHook']
[2] import tensorflow as tf
print(tf.__version__)
我正在尝试在 Google Colab 中导入最新的 rc2 版本的 Tensorflow(目前为 2.2.0rc2),但是从我的 setup.py 安装脚本安装时无法执行此操作。
当我使用 !pip install tensorflow==2.2.0rc2
从 Colab 单元手动安装 Tensorflow 时,一切正常,我能够导入 Tensorflow。
接下来是我如何在 Google Colab 中安装依赖项:
# Executes the cell in bash mode
%%bash
if [ ! -d "/content/deep-deblurring/" ];
then
git clone https://github.com/ElPapi42/deep-deblurring;
cd deep-deblurring/
else
cd deep-deblurring/;
git pull;
fi;
git checkout development
cd ..
pip uninstall -y tensorflow tensor2tensor tensorboard tensorboardcolab tensorflow-datasets tensorflow-estimator tensorflow-gan tensorflow-hub tensorflow-metadata tensorflow-privacy tensorflow-probability
pip install colab-env
pip install --upgrade grpcio
cd deep-deblurring/
python setup.py install
cd ..
下一个是我的setup.py文件:
#!/usr/bin/python
# coding=utf-8
"""Setup and install the package and all the dependencies."""
from setuptools import setup, find_packages
with open('requirements.txt') as pro:
INSTALL_REQUIRES = pro.read().split('\n')
setup(
author='Whitman Bohorquez, Mo Rebaie',
author_email='whitman-2@hotmail.com',
name='deblurrer',
license='MIT',
description='Image Deblurring using Deep Learning Architecture',
version='1.0.0',
url='',
packages=find_packages(),
include_package_data=True,
python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
classifiers=[
'Development Status :: Alpha',
'Programming Language :: Python',
'Programming Language :: Python :: 3.6',
'Intended Audience :: Developers',
],
)
接下来是存储库中的 requirements.txt:
grpcio == 1.27.2
kaggle
numpy
tensorflow >= 2.2.0rc2
pandas
实际上,Google Colab 附带 Tensorflow 2.2.0rc1,但我想要 rc2。当我执行时:
import tensorflow as tf
print(tf.__version__)
在执行setup.py安装脚本之前,导入工作正常。但是使用setup.py安装完成后,抛出错误ImportError: No module named 'tensorflow'
。
我检查了python setup.py install
执行前后的tensorflow安装,似乎一切正常,安装前tensorflow 2.2.0rc1,安装后2.2.0rc2。
正如我首先提到的,当我使用 !pip install tensorflow==2.2.0rc2
手动安装 tensorflow 时,导入工作正常,所以问题一定是围绕 setup.py
文件或需求,类似的东西,但我没有看到它.
希望大家帮帮忙!
PD:这个项目设置在上周的星期五工作,但今天我尝试 运行 它,突然停止工作,没有明显的原因。
PD2:https://colab.research.google.com/drive/1Qv8h4ceEtDTq5lvt1uKJG8dk53_bUqBZ这是我与您分享的 Colab Notebook,它设置了重现问题的代码。
PD3:这是导入 tensorflow 时 Google Colab 中的完整错误回溯:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_spec(name, path, target)
AttributeError: '_TensorflowImportHook' object has no attribute 'find_spec'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
2 frames
<ipython-input-7-69e5d056d1fc> in <module>()
----> 1 import tensorflow as tf
2
3 tf.__version__
/usr/local/lib/python3.6/dist-packages/google/colab/_import_hooks/_tensorflow.py in find_module(self, fullname, path)
26 if fullname != 'tensorflow':
27 return None
---> 28 self.module_info = imp.find_module(fullname.split('.')[-1], path)
29 return self
30
/usr/lib/python3.6/imp.py in find_module(name, path)
295 break # Break out of outer loop when breaking out of inner loop.
296 else:
--> 297 raise ImportError(_ERR_MSG.format(name), name=name)
298
299 encoding = None
ImportError: No module named 'tensorflow'
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------
我找到了解决方法,但这不是解决这个问题的方法,所以这不会被接受为解决方案,但会帮助遇到同样麻烦的人继续他们的工作:
在安装自定义包之前手动安装您的要求,在我的例子中,这是 pip install -r "/content/deep-deblurring/requirements.txt"
:
# Executes the cell in bash mode
%%bash
if [ ! -d "/content/deep-deblurring/" ];
then
git clone https://github.com/ElPapi42/deep-deblurring;
cd deep-deblurring/
else
cd deep-deblurring/;
git pull;
fi;
git checkout development
cd ..
pip uninstall -y tensorflow tensor2tensor tensorboard tensorboardcolab tensorflow-datasets tensorflow-estimator tensorflow-gan tensorflow-hub tensorflow-metadata tensorflow-privacy tensorflow-probability
pip install colab-env
pip install --upgrade grpcio
pip install -r "/content/deep-deblurring/requirements.txt"
cd deep-deblurring/
python setup.py install
cd ..
目前这解决了导入问题,但这不是一个干净的解决方案,希望以后有更好的解释!
tensorflow
没有问题,但是 Colab 的 _TensorflowImportHook
缺少 find_spec
impl,所以如果 tensorflow
安装为 egg 目录,它会引发。由于挂钩除了发出将 tensorflow
更新为 2.0 和 is scheduled for removal anyway 的通知之外没有做任何有用的事情,所以一个简单的修复方法是从笔记本开头某处的 sys.meta_path
清除它:
[1] import sys
sys.meta_path[:] = [hook for hook in sys.meta_path if not h.__class__.__name__ == '_TensorflowImportHook']
[2] import tensorflow as tf
print(tf.__version__)