在运行测试命令之前,如何配置 Tox 以获取文件?
我尝试了显而易见的:
commands = source /path/to/my/setup.bash; ./mytestcommand
Run Code Online (Sandbox Code Playgroud)
但 Tox 只是报告 ERROR: InvocationError: could not find executable 'source'
我知道 Tox 有一个setenv参数,但我想使用我的setup.bash,而不必将其内容复制并粘贴到我的tox.ini.
如何使用自创建记录以来的天数计算来注释表的 Django 查询?
我想根据优先级乘以记录创建以来的天数的组合指标来排序表。
为了获得日期注释,我正在尝试执行以下操作:
qs = qs.annotate(days=(ExtractDay(Now()-F('created_datetime'))))
Run Code Online (Sandbox Code Playgroud)
但是,这会引发错误:
django.db.utils.ProgrammingError: function pg_catalog.timezone(unknown, interval) does not exist
LINE 1: ...EMENT_TIMESTAMP() - "myapp_mymodel"."created_timestamp") AT TIME ZO...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的Extract()功能,但它也会产生类似的错误。
我究竟做错了什么?
表面上,我只需要执行与 Django 等效的操作EXTRACT(DAY FROM NOW() - created_timestamp),但 Django 的Extract(..., 'days')和ExtractDay()函数似乎与 PostgreSQL 的等效项实际上并不匹配。
看起来 Django 的返回值Now()和我的时间戳字段都是时区感知时间戳,那么为什么数据库会抱怨类型不兼容呢?
我的数据库后端是 PostgreSQL。
你如何在Django 1.5中覆盖模型的元类?我在一些继承自抽象模型的模型上覆盖了元类,因此我可以设置适当的选择.例如
class BaseModel(models.Model):
field_with_choices = models.CharField(max_length=100)
class Meta:
abstract = True
class MyModelMetaClass(BaseModel.__metaclass__):
def __new__(cls, *args, **kwargs):
new_class = super(MyModelMetaClass, cls).__new__(cls, *args, **kwargs)
field = new_class._meta.get_field('field_with_choices')
choices = field._choices = []
choices.extend(get_choices())
return new_class
class MyModel(BaseModel):
__metaclass__ = MyModelMetaClass
Run Code Online (Sandbox Code Playgroud)
但是,当我升级到Django 1.5时,我现在得到错误:
AttributeError: type object 'BaseModel' has no attribute '__metaclass__'
Run Code Online (Sandbox Code Playgroud)
如何在1.5中覆盖模型的元类,或者在模型子类中动态设置字段属性?
如何通过相关模型字段过滤/加入Haystack SearchQuerySet?
我有一个查询:
sqs = SearchQuerySet().models(models.Person)
Run Code Online (Sandbox Code Playgroud)
这将返回与等效管理页面返回的结果相同的结果.
但是,如果我尝试按外键链接的模型记录进行过滤:
sqs = sqs.filter(workplace__role__name='teacher')
Run Code Online (Sandbox Code Playgroud)
即使页面/admin/myapp/person/?workplace__role__name=teacher返回多条记录,它也不会返回任何内容.
我不想对这些相关模型进行任何全文搜索.我只想做一个简单的完全匹配过滤器.干草堆有可能吗?
有没有一种快速有效的方法来查找NxM Numpy数组中具有最高值的每一列中的行?
我目前正在通过Python中的嵌套循环执行此操作,这比较慢:
from PIL import Image
import numpy as np
img = Image.open('sample.jpg').convert('L')
width, height = size = img.size
y = np.asarray(img.getdata(), dtype=np.float64).reshape((height, width))
max_rows = [0]*width
for col_i in xrange(y.shape[1]):
max_vaue, max_row = max([(y[row_i][col_i], row_i) for row_i in xrange(y.shape[0])])
max_rows[col_i] = max_row
Run Code Online (Sandbox Code Playgroud)
对于640x480的图像,这大约需要5秒钟。虽然不是很大,但是在Numpy / PIL / C中完全实现的更复杂的图像操作(如模糊)需要0.01秒或更短的时间。我正在尝试对视频流执行此操作,因此这是一个巨大的瓶颈。如果不编写自己的C扩展名,如何加快速度?
如何将实例引用传递给类构造函数并将该引用存储到私有变量?
我正在做:
class MyClass{
private:
OtherClass obj;
public:
MyClass(OtherClass &_obj){
obj = _obj;
}
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试用gcc 编译一些c ++ i2cdevlib代码,我收到错误:
/usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h: In member function 'uint8_t MPU9150::dmpInitialize()':
/usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h:605:56: error: no matching function for call to 'min(uint8_t&, int)'
getFIFOBytes(fifoBuffer, min(fifoCount, 128)); // safeguard only 128 bytes
^
Run Code Online (Sandbox Code Playgroud)
为什么没有min(uint8_t&, int)定义?这不是标准的数学函数吗?
我是否正确地假设我在某处遗漏了包含或名称空间声明,并且不应该自己定义此函数?
你如何使Python字符串与他们使用的Python版本无关?
我正在尝试维护适用于Python 2.7和Python 3*的代码,并且我遇到了许多反直觉错误.例如,这在Python 2.7中完美运行:
print('Job: %s' % job)
Run Code Online (Sandbox Code Playgroud)
但它在Python 3.3中失败并出现错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 27: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
如果我将该行更改为:
print(('Job: %s' % job).encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
修复它在Python 3.3 ...但它打破了Python 2.7,现在抛出完全相同的错误.
尝试在Python中管理字符串感觉就像玩傻瓜一样.你如何可靠地编码字符串,以便它们适用于所有版本的Python?
如何输出Django管理员正在生成的SQL来查询dhangelist页面的结果?我尝试queryset()通过以下方法覆盖:
def queryset(self, *args, **kwargs):
qs = super(MyAdmin, self).queryset(*args, **kwargs)
print 'sql:',qs.query
return qs
Run Code Online (Sandbox Code Playgroud)
但是即使我正在浏览/admin/myapp/mymodel/?segment=123&date=2012-1-1,这也会显示查询:
sql: SELECT myapp_mymodel.id, myapp_mymodel.segment, myapp_mymodel.start_date
FROM myapp_mymodel ORDER BY myapp_mymodel.start_date ASC
Run Code Online (Sandbox Code Playgroud)
请注意,完全没有我在URL中指定的任何过滤器。
我正在尝试调试一个奇怪的问题,即如果我手动查询SQL中的表,会看到一个结果,但是Django的管理员显示的是完全不同的东西。我怀疑Django中有一个错误会导致生成错误的SQL,但是我需要查看SQL来确认这是问题所在。
我正在使用Django 1.5。
python ×6
django ×4
c++ ×2
django-orm ×2
arrays ×1
constructor ×1
numpy ×1
performance ×1
python-2.7 ×1
python-3.x ×1
reference ×1
string ×1
tox ×1
unicode ×1