textattack报错:不能导入自定义search_methods (cannot import name ‘xxx‘ from ‘xxx‘)

1. 报错信息

shell 复制代码
ImportError: cannot import name 'AAA' from 'textattack.search_methods' 
(/home/666/anaconda3/envs/textattack37_env/lib/python3.7/site-packages/textattack/search_methods/__init__.py)

2. 出错简述

贴一段test1.py的模块导入

python 复制代码
#建议使用!
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com' 
#忽略警告!
import warnings
warnings.filterwarnings("ignore")
#问题出在这!
from textattack.constraints.grammaticality import PartOfSpeech
from textattack.constraints.pre_transformation import (RepeatModification, StopwordModification,)
from textattack.constraints.semantics.sentence_encoders.universal_sentence_encoder import UniversalSentenceEncoder
from textattack.goal_functions import UntargetedClassification
from textattack.search_methods import AAA
from textattack import Attack
import textattack
from textattack.transformations import WordSwapMaskedLMSA

3. 解决方案

出现问题的原因:mytest与textattack是同级目录,mytest里的test1.py找不到外边的textattack模块,所以就用的虚拟环境的textattack!

解决方案1:

把test1.py拿出来,放到与textattack文件夹同级目录,就能正确找到AAA

解决方案2:

考虑不同文件夹之间模块调用,用sys.path.append('../textattack')

python 复制代码
from textattack.constraints.grammaticality import PartOfSpeech
from textattack.constraints.pre_transformation import (RepeatModification, StopwordModification,)
from textattack.constraints.semantics.sentence_encoders.universal_sentence_encoder import UniversalSentenceEncoder
from textattack.goal_functions import UntargetedClassification
###########################
#from textattack.search_methods import AAA  #原
#### 改
import sys
sys.path.append('../textattack')
from search_methods import SimulatedAnnealnig  #search_methods下可能会有红色波浪线
###########################
from textattack import Attack
import textattack
from textattack.transformations import WordSwapMaskedLMSA

第二种方法试过了,需要改动的太多了😭

相关推荐
zhiSiBuYu051724 分钟前
Python3 模块开发与应用实战指南
python
databook1 小时前
用方差阈值过滤掉“惰性特征”
python·机器学习·scikit-learn
Freak嵌入式1 小时前
MCU 低功耗模式解析:时钟门控、电源门控、深度休眠
人工智能·python·单片机·嵌入式硬件·开源·依赖倒置原则·micropython
weixin_BYSJ19872 小时前
springboot校园自习室管理小程序---附源码32142
java·javascript·spring boot·python·django·flask·php
用户8356290780513 小时前
使用 Python 在 PDF 中绘制线条、矩形和自定义图形
后端·python
wang_yb3 小时前
用方差阈值过滤掉“惰性特征”
python·ai·databook
威联通网络存储3 小时前
TS-h2490FU在钢铁热轧/冷轧板材表面缺陷在线视觉检测中的部署
人工智能·python·计算机视觉·视觉检测
RFID固定资产管理系统5 小时前
公司RFID管理系统揭秘
大数据·python
IVEN_5 小时前
Python官方包、Conda、uv,应该怎么选
python
凡尘——雨落凡尘6 小时前
Python列表索引越界IndexError问题深度解析与解决办法
python·indexerror·list index out of range