我在尝试在 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等)指定兼容版本,以避免冲突。然而,这种方法并没有完全解决问题。
在本地环境中测试:我们建议在本地设置中复制环境和依赖项,以检查兼容性问题并验证冲突的包是否可以在同一环境中共存。