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

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

相关推荐
计算机源码社1 分钟前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
汤兰月6 分钟前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式
西柚与蓝莓2 小时前
【开源开放体系总结】
python
belldeep5 小时前
python:reportlab 将多个图片合并成一个PDF文件
python·pdf·reportlab
FreakStudio8 小时前
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
python·单片机·嵌入式·面向对象·电子diy
丶21368 小时前
【CUDA】【PyTorch】安装 PyTorch 与 CUDA 11.7 的详细步骤
人工智能·pytorch·python
_.Switch9 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
一个闪现必杀技9 小时前
Python入门--函数
开发语言·python·青少年编程·pycharm
小鹿( ﹡ˆoˆ﹡ )9 小时前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
卷心菜小温10 小时前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug