You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装PyTorch后无法导入Optuna,报TypeError错误求助

Optuna导入失败,疑似与PyTorch冲突

问题概述

安装PyTorch前所有功能正常,安装后Optuna无法导入,推测是两者依赖冲突导致。已尝试将所有包更新至最新版本,问题仍未解决。同时PyTorch还导致matplotlib异常,尝试过'truetype'版本修复方案无效。

核心报错信息

TypeError: dataclass_transform() got an unexpected keyword argument 'field_specifiers'

完整报错栈

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-11-44e13f4113b4> in <module>
     89 from IPython.display import clear_output
     90 
---> 91 import optuna

~\.conda\envs\Alex_env\lib\site-packages\optuna\__init__.py in <module>
      3 from optuna import integration
      4 from optuna import logging
----> 5 from optuna import multi_objective
      6 from optuna import pruners
      7 from optuna import samplers

~\.conda\envs\Alex_env\lib\site-packages\optuna\multi_objective\__init__.py in <module>
      1 from optuna._imports import _LazyImport
----> 2 from optuna.multi_objective import samplers
      3 from optuna.multi_objective import study
      4 from optuna.multi_objective import trial
      5 from optuna.multi_objective.study import create_study

~\.conda\envs\Alex_env\lib\site-packages\optuna\multi_objective\samplers\__init__.py in <module>
----> 1 from optuna.multi_objective.samplers._adapter import _MultiObjectiveSamplerAdapter
      2 from optuna.multi_objective.samplers._base import BaseMultiObjectiveSampler
      3 from optuna.multi_objective.samplers._motpe import MOTPEMultiObjectiveSampler
      4 from optuna.multi_objective.samplers._nsga2 import NSGAIIMultiObjectiveSampler
      5 from optuna.multi_objective.samplers._random import RandomMultiObjectiveSampler

~\.conda\envs\Alex_env\lib\site-packages\optuna\multi_objective\samplers\_adapter.py in <module>
      4 from optuna import multi_objective
      5 from optuna.distributions import BaseDistribution
----> 6 from optuna.samplers import BaseSampler
      7 from optuna.study import Study
      8 from optuna.trial import FrozenTrial

~\.conda\envs\Alex_env\lib\site-packages\optuna\samplers\__init__.py in <module>
----> 1 from optuna.samplers import nsgaii
      2 from optuna.samplers._base import BaseSampler
      3 from optuna.samplers._brute_force import BruteForceSampler
      4 from optuna.samplers._cmaes import CmaEsSampler
      5 from optuna.samplers._grid import GridSampler

~\.conda\envs\Alex_env\lib\site-packages\optuna\samplers\nsgaii\__init__.py in <module>
----> 1 from optuna.samplers.nsgaii._crossovers._base import BaseCrossover
      2 from optuna.samplers.nsgaii._crossovers._blxalpha import BLXAlphaCrossover
      3 from optuna.samplers.nsgaii._crossovers._sbx import SBXCrossover
      4 from optuna.samplers.nsgaii._crossovers._spx import SPXCrossover
      5 from optuna.samplers.nsgaii._crossovers._undx import UNDXCrossover

~\.conda\envs\Alex_env\lib\site-packages\optuna\samplers\nsgaii\_crossovers\_base.py in <module>
      3 import numpy as np
      4 
----> 5 from optuna.study import Study
      6 
      7 

~\.conda\envs\Alex_env\lib\site-packages\optuna\study\__init__.py in <module>
      2 from optuna.study._study_direction import StudyDirection
      3 from optuna.study._study_summary import StudySummary
----> 4 from optuna.study.study import copy_study
      5 from optuna.study.study import create_study
      6 from optuna.study.study import delete_study

~\.conda\envs\Alex_env\lib\site-packages\optuna\study\study.py in <module>
     24 from optuna import pruners
     25 from optuna import samplers
----> 26 from optuna import storages
     27 from optuna import trial as trial_module
     28 from optuna._convert_positional_args import convert_positional_args

~\.conda\envs\Alex_env\lib\site-packages\optuna\storages\__init__.py in <module>
      3 from optuna._callbacks import RetryFailedTrialCallback
      4 from optuna.storages._base import BaseStorage
----> 5 from optuna.storages._cached_storage import _CachedStorage
      6 from optuna.storages._heartbeat import fail_stale_trials
      7 from optuna.storages._in_memory import InMemoryStorage

~\.conda\envs\Alex_env\lib\site-packages\optuna\storages\_cached_storage.py in <module>
     17 from optuna.storages import BaseStorage
     18 from optuna.storages._heartbeat import BaseHeartbeat
----> 19 from optuna.storages._rdb.storage import RDBStorage
     20 from optuna.study._frozen import FrozenStudy
     21 from optuna.study._study_direction import StudyDirection

~\.conda\envs\Alex_env\lib\site-packages\optuna\storages\_rdb\storage.py in <module>
     28 from optuna.storages._base import DEFAULT_STUDY_NAME_PREFIX
     29 from optuna.storages._heartbeat import BaseHeartbeat
----> 30 from optuna.storages._rdb.models import TrialValueModel
     31 from optuna.study._frozen import FrozenStudy
     32 from optuna.study._study_direction import StudyDirection

~\.conda\envs\Alex_env\lib\site-packages\optuna\storages\_rdb\models.py in <module>
     17 from sqlalchemy import func
     18 from sqlalchemy import Integer
----> 19 from sqlalchemy import orm
     20 from sqlalchemy import String
     21 from sqlalchemy import Text

~\.conda\envs\Alex_env\lib\site-packages\sqlalchemy\orm\__init__.py in <module>
     55 from .context import FromStatement as FromStatement
     56 from .context import QueryContext as QueryContext
----> 57 from .decl_api import add_mapped_attribute as add_mapped_attribute
     58 from .decl_api import as_declarative as as_declarative
     59 from .decl_api import declarative_base as declarative_base

~\.conda\envs\Alex_env\lib\site-packages\sqlalchemy\orm\decl_api.py in <module>
    160         composite,
    161         synonym,
---> 162         deferred,
    163     ),
    164 )

解决方案

这个错误本质是sqlalchemy和typing_extensions版本不兼容导致的,PyTorch安装时可能自动调整了typing_extensions版本,和Optuna依赖的sqlalchemy参数要求不匹配。

具体修复步骤:

  1. 卸载当前冲突的包:
pip uninstall -y typing_extensions sqlalchemy
  1. 安装兼容版本组合:
    • 方案一(推荐):适配新版sqlalchemy
    pip install sqlalchemy>=2.0.0 typing_extensions>=4.6.0
    
    • 方案二:保留旧版sqlalchemy
    pip install typing_extensions==4.5.0 sqlalchemy==1.4.49
    
  2. 验证Optuna导入是否正常:
import optuna

matplotlib异常补充修复

如果是字体显示问题,直接指定可用字体:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 替换为你系统中存在的字体
plt.rcParams['axes.unicode_minus'] = False

如果是依赖冲突,降级matplotlib到兼容版本:

pip install matplotlib==3.7.1

内容的提问来源于stack exchange,提问作者Thoughtful_Jeffrie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:38:09