Ubuntu21.04编译mmcv-full失败的问题

升级Ubuntu至21.04后,Python默认版本变为3.9,需重装Python包。在安装mmcv-full时遇到编译错误,因CUDA 11.1与GCC 10不兼容。通过安装GCC 9.3并切换默认GCC版本解决。

CUDA: 11.1
NVIDIA Driver: 460.91.03
OS: Ubuntu21.04

笔者前段时间使用sudo do-release-upgrade命令从Ubuntu20.04升级到了21.04,原来的cuda和nvidia驱动程序没有损坏,但是python默认版本已经变成了3.9,所以需要重新安装python包。在安装mmcv-full的时候,编译出错(详细日志信息见文末),看提示信息应该是gcc/g++版本作怪,遂安装了gcc-9.3版本,按照https://www.jianshu.com/p/876934a6401f 的方法切换Ubuntu默认gcc/g++版本即可。究其原因是CUDA11.1与gcc10尚不兼容。

日志信息:

Building wheels for collected packages: mmcv-full
  Building wheel for mmcv-full (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-v8y14f6b/mmcv-full_3db000a6dd1b4bd 98c740637ff017340/setup.py'"'"'; __file__='"'"'/tmp/pip-install-v8y14f6b/mmcv-full_3db000a6dd1b4bd98c740637ff017340/setup.py'"'"';f=getattr (tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"' exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-10cg5sog
       cwd: /tmp/pip-install-v8y14f6b/mmcv-full_3db000a6dd1b4bd98c740637ff017340/
  Complete output (555 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.9
  creating build/lib.linux-x86_64-3.9/mmcv
  copying mmcv/__init__.py -> build/lib.linux-x86_64-3.9/mmcv
  copying mmcv/version.py -> build/lib.linux-x86_64-3.9/mmcv
  creating build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/modulated_deform_conv.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/psa_mask.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/roi_align.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/deform_conv.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/roi_align_rotated.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/cc_attention.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/roi_pool.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/carafe.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/info.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/bbox.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/masked_conv.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/corner_pool.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/point_sample.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/deprecated_wrappers.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/fused_bias_leakyrelu.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/multi_scale_deform_attn.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/deform_roi_pool.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/contour_expand.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/upfirdn2d.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/nms.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/merge_cells.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/border_align.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/tin_shift.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/focal_loss.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/saconv.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/box_iou_rotated.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/pixel_group.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  copying mmcv/ops/sync_bn.py -> build/lib.linux-x86_64-3.9/mmcv/ops
  creating build/lib.linux-x86_64-3.9/mmcv/cnn
  copying mmcv/cnn/vgg.py -> build/lib.linux-x86_64-3.9/mmcv/cnn
  copying mmcv/cnn/alexnet.py -> build/lib.linux-x86_64-3.9/mmcv/cnn
  copying mmcv/cnn/resnet.py -> build/lib.linux-x86_64-3.9/mmcv/cnn
  copying mmcv/cnn/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/cnn
  copying mmcv/cnn/builder.py -> build/lib.linux-x86_64-3.9/mmcv/cnn
  creating build/lib.linux-x86_64-3.9/mmcv/fileio
  copying mmcv/fileio/io.py -> build/lib.linux-x86_64-3.9/mmcv/fileio
  copying mmcv/fileio/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/fileio
  copying mmcv/fileio/file_client.py -> build/lib.linux-x86_64-3.9/mmcv/fileio
  copying mmcv/fileio/parse.py -> build/lib.linux-x86_64-3.9/mmcv/fileio
  creating build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/io.py -> build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/misc.py -> build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/colorspace.py -> build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/photometric.py -> build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/image
  copying mmcv/image/geometric.py -> build/lib.linux-x86_64-3.9/mmcv/image
  creating build/lib.linux-x86_64-3.9/mmcv/engine
  copying mmcv/engine/test.py -> build/lib.linux-x86_64-3.9/mmcv/engine
  copying mmcv/engine/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/engine
  creating build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/env.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/parrots_jit.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/registry.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/misc.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/logging.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/path.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/ext_loader.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/config.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/trace.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/progressbar.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/timer.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/parrots_wrapper.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/version_utils.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  copying mmcv/utils/testing.py -> build/lib.linux-x86_64-3.9/mmcv/utils
  creating build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/registry.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/data_parallel.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/distributed_deprecated.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/_functions.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/collate.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/utils.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/data_container.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/distributed.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  copying mmcv/parallel/scatter_gather.py -> build/lib.linux-x86_64-3.9/mmcv/parallel
  creating build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/log_buffer.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/checkpoint.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/utils.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/base_module.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/dist_utils.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/epoch_based_runner.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/default_constructor.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/priority.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/base_runner.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/iter_based_runner.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/fp16_utils.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  copying mmcv/runner/builder.py -> build/lib.linux-x86_64-3.9/mmcv/runner
  creating build/lib.linux-x86_64-3.9/mmcv/visualization
  copying mmcv/visualization/color.py -> build/lib.linux-x86_64-3.9/mmcv/visualization
  copying mmcv/visualization/image.py -> build/lib.linux-x86_64-3.9/mmcv/visualization
  copying mmcv/visualization/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/visualization
  copying mmcv/visualization/optflow.py -> build/lib.linux-x86_64-3.9/mmcv/visualization
  creating build/lib.linux-x86_64-3.9/mmcv/video
  copying mmcv/video/io.py -> build/lib.linux-x86_64-3.9/mmcv/video
  copying mmcv/video/processing.py -> build/lib.linux-x86_64-3.9/mmcv/video
  copying mmcv/video/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/video
  copying mmcv/video/optflow.py -> build/lib.linux-x86_64-3.9/mmcv/video
  creating build/lib.linux-x86_64-3.9/mmcv/onnx
  copying mmcv/onnx/info.py -> build/lib.linux-x86_64-3.9/mmcv/onnx
  copying mmcv/onnx/symbolic.py -> build/lib.linux-x86_64-3.9/mmcv/onnx
  copying mmcv/onnx/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/onnx
  creating build/lib.linux-x86_64-3.9/mmcv/tensorrt
  copying mmcv/tensorrt/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/tensorrt
  copying mmcv/tensorrt/tensorrt_utils.py -> build/lib.linux-x86_64-3.9/mmcv/tensorrt
  copying mmcv/tensorrt/init_plugins.py -> build/lib.linux-x86_64-3.9/mmcv/tensorrt
  copying mmcv/tensorrt/preprocess.py -> build/lib.linux-x86_64-3.9/mmcv/tensorrt
  creating build/lib.linux-x86_64-3.9/mmcv/arraymisc
  copying mmcv/arraymisc/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/arraymisc
  copying mmcv/arraymisc/quantization.py -> build/lib.linux-x86_64-3.9/mmcv/arraymisc
  creating build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/padding.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/swish.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/hswish.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/registry.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/conv_module.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/non_local.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/upsample.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/wrappers.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/hsigmoid.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/transformer.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/conv.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/context_block.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/conv2d_adaptive_padding.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/generalized_attention.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/plugin.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/depthwise_separable_conv_module.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/scale.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/norm.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/conv_ws.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/activation.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  copying mmcv/cnn/bricks/drop.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/bricks
  creating build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  copying mmcv/cnn/utils/fuse_conv_bn.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  copying mmcv/cnn/utils/flops_counter.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  copying mmcv/cnn/utils/weight_init.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  copying mmcv/cnn/utils/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  copying mmcv/cnn/utils/sync_bn.py -> build/lib.linux-x86_64-3.9/mmcv/cnn/utils
  creating build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  copying mmcv/fileio/handlers/json_handler.py -> build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  copying mmcv/fileio/handlers/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  copying mmcv/fileio/handlers/base.py -> build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  copying mmcv/fileio/handlers/pickle_handler.py -> build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  copying mmcv/fileio/handlers/yaml_handler.py -> build/lib.linux-x86_64-3.9/mmcv/fileio/handlers
  creating build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/evaluation.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/closure.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/checkpoint.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/lr_updater.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/iter_timer.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/sampler_seed.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/momentum_updater.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/hook.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/sync_buffer.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/ema.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/optimizer.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/profiler.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  copying mmcv/runner/hooks/memory.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks
  creating build/lib.linux-x86_64-3.9/mmcv/runner/optimizer
  copying mmcv/runner/optimizer/__init__.py -> build/lib.linux-x86_64-3.9/mmcv/runner/optimizer
  copying mmcv/runner/optimizer/default_constructor.py -> build/lib.linux-x86_64-3.9/mmcv/runner/optimizer
  copying mmcv/runner/optimizer/builder.py -> build/lib.linux-x86_64-3.9/mmcv/runner/optimizer
  creating build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/neptune.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/mlflow.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/text.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/tensorboard.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/wandb.py -> build/lib.linux-x86_64-3.9/mmcv/runner/hooks/logger
  copying mmcv/runner/hooks/logger/__init__.py -> build/lib.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值