我正在使用 odx 文件,并且有一个要运行的generate.py 文件。我正在使用 pyXB。当我尝试跑步时,我得到了这个。
*回溯(最近一次调用最后一次):
文件“C:\Users\rohitkr\Downloads\starter_kit_adas-master\starter_kit_adas-master\devops\scripts\generate_odxf\generate_odxf.py”,第 15 行,来自
schema import odx
文件“C:\Users\rohitkr\Downloads\starter_kit_adas-master\starter_kit_adas-master\devops\scripts\generate_odxf\schema\odx.py”,第 9 行,导入 pyxb.binding
文件“C:\Users\rohitkr\AppData\Local\Programs\Python\Python310\lib\site-packages\pyxb\binding_ init _.py”,第 8 行,来自 . 导入数据类型
文件“C:\Users\rohitkr\AppData\Local\Programs\Python\Python310\lib\site-packages\pyxb\binding\datatypes.py”,第 1266 行,位于 rom 中。导入内容
文件“C:\ Users \ rohitkr \ AppData \ Local \ Programs \ Python \ Python310 \ lib \ site-packages \ pyxb \ binding \ content.py”,第807行,在类_PluralBinding(collections.MutableSequence)中:
AttributeError:模块“集合”没有属性“MutableSequence”*“”
可能是什么问题呢?提前致谢。
from celery.task import Task
class Decayer(Task):
def calc_decay_value(self, x):
y = (1.0/(2^x))
return y
def calc_decay_time(self, x):
y = 2^x
return y
def run(self, d, **kwargs):
#do stuff.
return 0
>>> decayer = tasks.Decayer(r)
Traceback (most recent call last):
File "scanDecay.py", line 31, in <module>
decayer = tasks.Decayer(r)
TypeError: object.__new__() takes no parameters
Run Code Online (Sandbox Code Playgroud) 所以我有一个类方法,我想用它来绘制字典及其值:
def __repr__ (self):
for row in zip(*([ky]+map(str,val) for ky,val in (self.slovar.items()))):
print"\t".join (row)
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,我会得到一个理想的输出:
>>> test
n n1 n2
1 a 2.3
2 b 2.1
3 d 2.5
Traceback (most recent call last):
File "<pyshell#521>", line 1, in <module>
test
TypeError: __repr__ returned non-string (type NoneType)
Run Code Online (Sandbox Code Playgroud)
但也是一个Traceback错误.
如果我返回值而不是打印出来,我只能得到这个:
>>> test
n n1 n2
Run Code Online (Sandbox Code Playgroud)
如果我制作一个自定义方法而不是默认的'系统',它可以正常工作...(我需要它是默认的)
我正在使用stomp.py库通过网络获取 JSON 消息。我已经修改了他们在此处提供的简单示例,该示例使用回调来提供消息处理。
但是当我修改那个回调时我犯了一个简单的错误 - 例如,我在尝试解析我的 JSON 字符串时调用了 json.load() 而不是 json.loads() 。
class MyListener(object):
def on_message(self, headers, message):
data = json.load(message) ## Should be .loads() for a string!
Run Code Online (Sandbox Code Playgroud)
通常这会很好 - 它会出现 AttributeError 并且我会看到回溯。但在这种情况下,Python 打印:
找不到记录器“stomp.py”的处理程序
...没有回溯,没有崩溃,仅此而已。调试非常混乱,找出我做错了什么!我至少期待以下方面的正常追溯:
Traceback (most recent call last):
File "./ncl/stomp.py-3.1.3/stompJSONParser.py", line 32, in <module>
[etc etc ...]
Run Code Online (Sandbox Code Playgroud)
......而不是让整个听众感到厌烦。我猜是因为那发生在不同的线程上?
现在我已经发现它就像回调中的一种运行时错误我至少知道我在出错时做错了什么 - 但如果它只是为我犯的每个错误喷出那个错误而不是给我某种有用的消息,这使得编码有点困难。
这是什么原因造成的?我该怎么做才能获得常规的、更详细的回溯?
我在models.py中有一个耐心的课程
class Patient(models.Model):
cpf_id = models.CharField(null=True, blank=True, max_length=15, unique=True, validators=[validate_cpf])
rg_id = models.CharField(max_length=15, null=True, blank=True)
name_txt = models.CharField(max_length=50)
number_record = models.AutoField(primary_key=True)
medical_record_number = models.CharField(max_length=25, null=True, blank=True)
natural_of_txt = models.CharField(max_length=50, null=True, blank=True)
citizenship_txt = models.CharField(max_length=50, null=True, blank=True)
street_txt = models.CharField(max_length=50, null=True, blank=True)
class Meta:
permissions = (
("view_patient", "Can view patient"),
)
def __unicode__(self): # Python 3: def __str__(self):
return \
self.name_txt, self.cpf_id, self.rg_id, self.medical_record_number, self.natural_of_txt, \
self.citizenship_txt, self.street_txt
Run Code Online (Sandbox Code Playgroud)
例如,当我将变量归于所有对象或使用某些过滤器过滤某些对象时,
patient = Patient.objects.all()
Run Code Online (Sandbox Code Playgroud)
好的,没有消息错误。
但是当我尝试列出此对象时,出现以下消息错误
Traceback (most recent call last):
File …
Run Code Online (Sandbox Code Playgroud) 我正在学习如何使用 python*args*
和**kwargs
符号。我正在尝试使用 getattr 将可变数量的参数传递给另一个文件中的函数。
以下代码将接受控制台输入,然后搜索包含放入控制台的函数的模块,然后使用参数执行该函数。
while True:
print(">>>", end = " ")
consoleInput = str(input())
logging.info('Console input: {}'.format(consoleInput))
commandList = consoleInput.split()
command = commandList[0]
print(commandList) # Debug print
"""Searches for command in imported modules, using the moduleDict dictionary,
and the moduleCommands dictionary."""
for key, value in moduleCommands.items():
print(key, value)
for commands in value:
print(commands, value)
if command == commands:
args = commandList[0:]
print(args) # Debug print
print(getattr(moduleDict[key], command))
func = getattr(moduleDict[key], command, *args)
func()
output = …
Run Code Online (Sandbox Code Playgroud) 当我尝试迁移时,出现以下错误
django.db.utils.ProgrammingError: column "name" of relation "blog_post" already exists
Run Code Online (Sandbox Code Playgroud)
现在,我已经假定该消息意味着我正在尝试创建一个名为“名称”的列,并且已经存在具有相同名称的列。因此,我查看了我的模型,以确保模型不存在且不存在。我不明白问题是什么。这是我的模特。哦,我先进行迁移,然后再进行迁移。所以这不是问题
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250, unique=True)
slug = models.SlugField(max_length=250,
unique_for_date='publish')
image = models.ImageField(upload_to=upload_location,
null=True,
blank=True,
height_field='height_field',
width_field='width_field')
image_url = models.CharField(max_length=500,
null=True,
blank=True,
)
height_field = models.IntegerField(default=0,
null=True,
blank=True,
)
width_field = models.IntegerField(default=0,
null=True,
blank=True,
)
author = models.ForeignKey(User,
related_name='blog_posts',
null=True,
blank=True,)
body = models.TextField(null=True, blank=True,)
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
video = models.BooleanField(default=False) …
Run Code Online (Sandbox Code Playgroud) 我有一个调用的脚本compile
。
try:
code = compile('3 = 3', 'test', 'exec')
except Exception as e:
sys.stderr.write(''.join(traceback.format_exception_only(type(e), e)))
Run Code Online (Sandbox Code Playgroud)
3 = 3
结果是:
File "test", line 1
SyntaxError: can't assign to literal
Run Code Online (Sandbox Code Playgroud)
而3 = 3a
实际上打印行
File "test", line 1
3 = 3a
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
假设我有一个非常简单的代码,但会引发错误:
print(1/0)
Run Code Online (Sandbox Code Playgroud)
如何将完整的回溯错误保存到文件中,以便该文件包含:
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(1/0)
ZeroDivisionError: division by zero
Run Code Online (Sandbox Code Playgroud) 我通常可以在 Pycharm“运行”窗口中看到 Python 回溯。但是,我有一个项目,在“运行”窗口中没有显示任何关于内部服务器错误的 Python 回溯(见下文):
> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
> /Users/noname/PycharmProjects/usc/main.py * Running on
> http://127.0.0.1:5000/ (Press CTRL+C to quit)
> 127.0.0.1 - - [06/Jul/2015 15:23:42] "GET / HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:43] "GET /estimator HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:44] "GET /estimator/errorform HTTP/1.1" 500 -
Run Code Online (Sandbox Code Playgroud)
最初我以为我一定是不小心更改了一些默认设置并完全丢失了回溯。但是我后来意识到,如果我在代码中注入一些任意错误,我仍然会在“运行”窗口中显示回溯。
问题是我知道 500 服务器错误是由我的 Python 指令之一引起的,因为如果我按照下面的评论修改指令,我可以让错误消失。我很困惑为什么会收到 500 服务器错误,但没有任何 Python 回溯。
相关代码片段如下:
@app.route('/estimator/errorform', methods=['GET', 'POST'])
def errorform():
form = ErrorForm()
line = str(open("logs.txt", "r").readlines()[int(file_len("logs.txt"))]).rstrip()
#Server Error disappears if I …
Run Code Online (Sandbox Code Playgroud) 我有一些我想运行的代码。我是 python 的新手,也是 stackoverflow
这是python程序:
# Circle Inversion Fractals (Apollonian Gasket) (Escape-time Algorithm)
# FB36 - 20131031
import math
import random
from collections import deque
from PIL import Image
imgx = 512; imgy = 512
image = Image.new("RGB", (imgx, imgy))
pixels = image.load()
n = random.randint(3, 6) # of main circles
a = math.pi * 2.0 / n
r = math.sin(a) / math.sin((math.pi - a) / 2.0) / 2.0 # r of main circles
h = math.sqrt(1.0 - r * …
Run Code Online (Sandbox Code Playgroud)