当前位置: 首页 > 知识库问答 >
问题:

从setup.py安装时,无法在Google Colab中导入Tensorflow 2.2.0rc2

江承嗣
2023-03-14

我试图在谷歌Colab中导入最新的rc2版本的Tensorflow(目前为2.2.0rc2),但是从我的 setup.py 安装脚本安装时无法做到这一点。

当我使用手动安装Tensorflow时!pip从Colab单元安装tensorflow==2.2.0rc2,一切正常,我可以导入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',
    ],
)

其次是要求。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安装完成后,错误导入错误:没有名为“张量流”的模块被抛出。

我在python安装执行之前和之后检查了tensorflow setup.py 安装,一切似乎都很好,安装前使用tensorflow 2.2.0rc1,安装后使用2.2.0rc2。

正如我首先提到的,当我手动使用安装Tensorflow时!pip安装Tensorflow==2.2.0rc2导入按预期工作,所以问题必须围绕setup.py文件或需求,类似的东西,但我没有看到它。

希望你们的帮助!

PD:这个项目设置在上周五还在运行,但是今天我试着运行它,突然没有明显的原因就停止了。

PD2:https://colab.research.google.com/drive/1Qv8h4ceEtDTq5lvt1uKJG8dk53_bUqBZ 这是我与您共享的 Colab 笔记本,这将设置重现问题的代码。

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.
---------------------------------------------------------------------------

共有2个答案

谯翔
2023-03-14

我找到了一个解决方法,但到目前为止这不是这个问题的解决方案,所以这不会被接受为解决方案,但会帮助有同样麻烦的人继续他们的工作:

在安装自定义软件包之前手动安装您的需求,就我而言,这是 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 ..

目前这修复了进口问题,但这不是一个干净的解决方案,让我们希望以后有更好的解释!

盖和泰
2023-03-14

tenorflow没什么问题,但Colab的_TensorflowImportHook缺少find_specimpl,因此如果tenorflow安装为蛋目录,它将引发。由于钩子除了发出将tenorflow更新到2.0的通知之外没有任何有用的作用,并且无论如何都计划删除,因此一个简单的修复方法是将其从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__)
 类似资料:
  • 我已经在Debian Linux中安装了pip(我在Linux beta版中使用ARM Chromebook) 它返回: 然而,在IDLE中,如果我尝试导入pyperclip,我会得到: 你知道这里出了什么问题或者我该怎么调查吗? 如果我在我的IDLE Python Shell和命令行中运行sys.path,我似乎会得到相同的结果: IDLE:['','/home/test','/usr/bin'

  • 我正在尝试在开发python模块时改进我的工作流程,并有一个相当基本的问题。 选择任一选项时究竟会发生什么。据我所知,开发将文件保留在原位,以便我可以修改它们并使用包,而安装将它们复制到我的 python 安装的站点包文件夹中。使用开发选项时,软件包如何链接到我的 python 安装。

  • 问题内容: 我有Django版本1.7和Python版本2.7.5-我使用pip install simplejson和apt-get install python-simplejson命令来解决此问题,但仍然显示此异常。Django和Python之间是否存在任何兼容性问题,或者解决该异常的解决方案是什么: 问题答案: 您的代码与您使用的Django版本不兼容。 Django以前附带,但在Djan

  • 我已经用和python3.7安装了它,但是当我尝试导入pandas并运行代码时,会出现错误。 Traceback(最近一次调用最后一次):文件/用户/芭比/Python/测试/test.py,第1行,在导入熊猫为pd ModuleNotFoundError:没有名为'熊猫'的模块 如果我尝试再次安装...它说这个。 已满足pip3安装pandas要求:已满足pandas in/usr/local/

  • 我正在创建一个项目,它依赖于来自PyPI的包。即: 但是,其中一些(例如)仅包含PyPI上的控制盘文件。https://pypi.python.org/simple/opencv-python/ 根据我的理解,setupols与不兼容。有没有办法从安装依赖项,理想情况下不使用pip?

  • 当我尝试导入psycopg2时,发生了以下错误。 导入心理学2 Traceback(最近一次调用最后一次):文件“”,第1行,在文件“/库/框架/Python.framework/Versions/3.7/lib/python3.7/site-packages/psycopg2/init.py”中,第50行,在心理学2中。_psycopg导入(#noqa重要错误: dlopen2(/库/框架/Py