模块“剪辑”没有属性“ SetExternalTraceback”

如何解决模块“剪辑”没有属性“ SetExternalTraceback”

我们尝试在带有片段-v6.3,kivy- v1.11.1的python 2.7中运行此代码。我们遇到的错误是在 main(sys.argv)行上说的“模块剪辑没有属性SetExternalTraceback”。而且我们认为出现此问题是因为我们的系统中未安装pyclips。但是在安装pyclips时,我们面临以下问题。

当我们尝试安装从https://pypi.org/project/pyclips/#files下载的pyclips-1.0.7.343.tar.gz时,要运行此代码。但是我们遇到了一个问题,该问题说要从Microsoft网站下载Microsoft Visual C ++ 9.0。我们已经成功安装了它,然后它也给出了此错误。

enter image description here

Github代码参考:https://github.com/kdart/clipsdemo

#!/usr/bin/python2.7
"""
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division

import sys
import os
import time

import kivy
kivy.require("1.8.0")

import clips

from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.uix.codeinput import CodeInput
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.popup import Popup

from lexer import JessLexer # At least close to clips syntax


def _now():
    return clips.Float(time.time())

class ClipsInput(CodeInput):
    def __init__(self,*args,**kwargs):
        super(ClipsInput,self).__init__(*args,**kwargs)
        self.lexer = JessLexer()
        self.hint_text = "Enter CLIPS code here."
        self.auto_indent = True
        self.background_color = (0.9,1.0,0.9,1.)

    def _keyboard_on_key_down(self,keyboard,keycode,text,modifiers):
        if keycode[0] == 13 and modifiers == ['ctrl']:
            app = App.get_running_app()
            app.do_command()
            return
        super(ClipsInput,self)._keyboard_on_key_down(keyboard,modifiers)


class LoadDialog(FloatLayout):
    load = ObjectProperty(None)
    cancel = ObjectProperty(None)

class SaveDialog(FloatLayout):
    save = ObjectProperty(None)
    cancel = ObjectProperty(None)
    text_input = ObjectProperty(None)

class ReadDialog(FloatLayout):
    read_input = ObjectProperty(None)


class ClipsDemoApp(App):

    def on_start(self):
        clips.RegisterPythonFunction(self._setstate1,"setstate1")
        clips.RegisterPythonFunction(self._getstate1,"getstate1")
        clips.RegisterPythonFunction(self._resetstate1,"resetstate1")
        clips.RegisterPythonFunction(self._setstate2,"setstate2")
        clips.RegisterPythonFunction(self._getstate2,"getstate2")
        clips.RegisterPythonFunction(self._resetstate2,"resetstate2")
        clips.RegisterPythonFunction(self._setstate3,"setstate3")
        clips.RegisterPythonFunction(self._getstate3,"getstate3")
        clips.RegisterPythonFunction(self._resetstate3,"resetstate3")
        clips.RegisterPythonFunction(self._setstate4,"setstate4")
        clips.RegisterPythonFunction(self._getstate4,"getstate4")
        clips.RegisterPythonFunction(_now,"now")
        #clips.RegisterPythonFunction(self.do_read,"read")

    def _setstate(self,num,args):
        lab = { 1: self.root.ids.state1,2: self.root.ids.state2,3: self.root.ids.state3,4: self.root.ids.state4,}[num]
        lab.color = (0.1,0.1,1.)
        if args:
            lab.text = str(args[0])

    def _resetstate(self,num):
        lab = { 1: self.root.ids.state1,}[num]
        lab.color = (1,1,1)
        lab.text = str("State{}".format(num))

    def _getstate(self,}[num]
        return clips.String(str(lab.text))

    def _getstate1(self,*args):
        return self._getstate(1)

    def _getstate2(self,*args):
        return self._getstate(2)

    def _getstate3(self,*args):
        return self._getstate(3)

    def _getstate4(self,*args):
        return self._getstate(4)

    def _setstate1(self,*args):
        self._setstate(1,args)

    def _resetstate1(self,*args):
        self._resetstate(1)

    def _setstate2(self,*args):
        self._setstate(2,args)

    def _resetstate2(self,*args):
        self._resetstate(2)

    def _setstate3(self,*args):
        self._setstate(3,args)

    def _resetstate3(self,*args):
        self._resetstate(3)

    def _setstate4(self,*args):
        self._setstate(4,args)

    def _resetstate4(self,*args):
        self._resetstate(4)

    def do_command(self):
        self.command(self.root.ids.program.text)

    def do_eval(self):
        self.clipseval(self.root.ids.program.text)

    def do_run(self):
        try:
            clips.Run()
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update()

    def do_step(self):
        try:
            ran = clips.Run(1)
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update(trace="Ran {} rules.".format(ran))

    def do_reset(self):
        try:
            clips.Reset()
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update()
        for i in (1,2,3,4):
            self._resetstate(i)

    def do_clear(self):
        try:
            clips.Clear()
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        _buildfunctions()
        self._update()

    def command(self,text):
        try:
            clips.SendCommand(text,True)
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update()
        self.root.ids.program.text = ""

    def clipseval(self,text):
        try:
            rv = clips.Eval(text)
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update(trace="Eval: {}".format(rv))
        self.root.ids.program.text = ""

    def do_update(self):
        self._update()

    def _update(self,error="",warnings="",trace=""):
        ids = self.root.ids
        ids.stdout.text = _reader(clips.StdoutStream.Read)
        ids.display.text = _reader(clips.DisplayStream.Read)
        ids.trace.text = _reader(clips.TraceStream.Read) + trace
        ids.warnings.text = _reader(clips.WarningStream.Read) + warnings
        ids.errors.text = _reader(clips.ErrorStream.Read) + error

    def dismiss_popup(self):
        self._popup.dismiss()
        self._popup = None

    def do_load(self):
        content = LoadDialog(load=self.load,cancel=self.dismiss_popup)
        self._popup = Popup(title="Load file",content=content,size_hint=(0.9,0.9))
        self._popup.open()

    def do_save(self):
        content = SaveDialog(save=self.save,cancel=self.dismiss_popup)
        self._popup = Popup(title="Save file",0.9))
        self._popup.open()

    def load(self,path,filename):
        self.dismiss_popup()
        try:
            clips.Load(filename[0])
        except clips.ClipsError as err:
            self._update(error="ClipsError: {}".format(err))
            return
        self._update()

    def save(self,filename):
        self.dismiss_popup()
        clips.Save(filename)
        self._update()

    def do_batch(self):
        content = LoadDialog(load=self.batch,cancel=self.dismiss_popup)
        self._popup = Popup(title="Run Batch",0.9))
        self._popup.open()

    def batch(self,filenames):
        self.dismiss_popup()
        for fname in filenames:
            try:
                clips.BatchStar(fname)
            except clips.ClipsError as err:
                self._update(error="ClipsError: {}".format(err))
                return
            self._update()

def _reader(readmethod):
    out = readmethod()
    if out is None:
        return ""
    rv = []
    while out is not None:
        rv.append(out)
        out = readmethod()
    return "".join(rv)

def _buildfunctions():
    # simpler clips functions to set output indicators
    clips.BuildFunction("setstate1","?text",'(python-call setstate1 ?text)')
    clips.BuildFunction("getstate1",None,'(python-call getstate1)')
    clips.BuildFunction("resetstate1",'(python-call resetstate1)')
    clips.BuildFunction("setstate2",'(python-call setstate2 ?text)')
    clips.BuildFunction("getstate2",'(python-call getstate2)')
    clips.BuildFunction("resetstate2",'(python-call resetstate2)')
    clips.BuildFunction("setstate3",'(python-call setstate3 ?text)')
    clips.BuildFunction("getstate3",'(python-call getstate3)')
    clips.BuildFunction("resetstate3",'(python-call resetstate3)')
    clips.BuildFunction("setstate4",'(python-call setstate4 ?text)')
    clips.BuildFunction("getstate4",'(python-call getstate4)')
    clips.BuildFunction("resetstate4",'(python-call resetstate4)')
    clips.BuildFunction("now",'(python-call now)')
    #clips.BuildFunction("read",'(python-call read)')

def main(argv):
    app = ClipsDemoApp()
    clips.SetExternalTraceback(True)
    _buildfunctions()
    if len(argv) > 1:
        try:
            clips.Load(argv[1])
        except clips.ClipsError as err:
            print (str(err))
            clips.Clear()
    clips.Reset()
    app.run()

******************** we are getting error in this part ******************

if __name__ == "__main__":
    import sys
    main(sys.argv)

******************** we are getting error in this part ******************

解决方法

回溯表明该模块正在使用python2打印语法,因此与python3不兼容。

标题中的错误没有出现在您的帖子中,所以我不知道这是怎么回事,但这可能与此核心问题无关。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res