解决 Kaggle Notebook 中的依赖冲突:已安装软件包的不兼容问题(lightning-flash 和 torchvision)

问题描述 投票:0回答:1

我在尝试在 Kaggle 笔记本中安装某些软件包时遇到依赖关系冲突。该错误消息表明某些软件包需要其他软件包的特定版本,这些版本与我的 Kaggle 环境中已安装的版本不兼容。该冲突使我无法安装所需的软件包,例如 Lightning-flash[extra] 和 torchvision。

错误消息列出了几个具有冲突依赖项的包,例如 click、dill、protobuf、google-api-core 等。

我使用的是 Kaggle 笔记本,对环境的控制有限,并且似乎某些软件包已修复到特定版本,从而导致冲突。我不确定最好的处理方法,并且非常感谢任何指导或替代方法来处理这种情况。


代码:

!pip install lightning-flash[extra]
!pip install lightning-flash
!pip install lightning-flash[image]
from flash.image import SemanticSegmentationData
from flash.image import SemanticSegmentation
!pip install torchvision
from torchvision import transforms as torchvision_transforms

错误(请查看附图中的完整错误): 错误:pip 的依赖项解析器当前未考虑所有已安装的软件包。此行为是以下依赖冲突的根源。


代码:

# Define the normalization transform using the calculated mean and standard deviation
normalize_transform = torchvision_transforms.Normalize(mean=0.5, std=1)
batch_size = 4
resize_transform = torchvision_transforms.Resize(size=(256, 256))
image_transforms = torchvision_transforms.Compose([resize_transform,normalize_transform])
target_transforms = torchvision_transforms.Compose([ resize_transform])

data_module = SemanticSegmentationData.from_folders( train_folder="/kaggle/input/water-body-segmentation-in-satellite-images/Water Bodies Dataset Preprocessed/Water Bodies Dataset Preprocessed/Images", 
                                               train_target_folder="/kaggle/input/water-body-segmentation-in-satellite-images/Scaled Mask Target Image/scale_save_mask_target_image", 
                                                   val_split=0.15, num_classes=2, batch_size=batch_size, transform_kwargs=dict(image_size=(256, 256)) )

data_module.train_transforms = torchvision_transforms.Compose([ image_transforms ])
data_module.val_transforms = torchvision_transforms.Compose([ image_transforms])
data_module.target_transforms = torchvision_transforms.Compose([target_transforms ])

错误:

ModuleNotFoundError:所需的依赖项不可用。请运行:pip install 'lightning-flash[image]'


我尝试了多种方法来解决该问题,包括使用 pip 安装所需的软件包、创建虚拟环境以及忽略警告。然而,到目前为止,这些解决方案都没有奏效。

安装所需的软件包:我们尝试使用标准的 !pip install 命令安装所需的软件包(lightning-flash[extra] 和 torchvision)。但是由于与现有包版本冲突,安装失败。

虚拟环境:我们考虑使用 virtualenv 包创建虚拟环境,但事实证明 Kaggle 笔记本中不需要虚拟环境,因为环境已经隔离。

忽略警告:我们观察到多个依赖项冲突警告,但选择不忽略它们,因为这可能会导致代码执行中的不正确行为或错误。

替代包版本:我们尝试为冲突的包(click、dill、protobuf、google-api-core等)指定兼容版本,以避免冲突。然而,这种方法并没有完全解决问题。

在本地环境中测试:我们建议在本地设置中复制环境和依赖项,以检查兼容性问题并验证冲突的包是否可以在同一环境中共存。

python pip kaggle pytorch-lightning
1个回答
0
投票

您可以尝试在kaggle中使用conda安装。示例:

!conda install pytorch::torchvision

您可以尝试安装已知兼容的特定版本的库(您可以通过谷歌搜索它们)示例:

!pip install torchvision==0.15.0

您可以尝试重新安装软件包或重新安装特定版本,如下所示:

!pip uninstall torchvision

然后

!pip install torchvision==0.15.0

重要旁注: 检查您的 Kaggle 环境中安装了哪些库和版本。 你可以用

!pip freeze

示例:

© www.soinside.com 2019 - 2024. All rights reserved.