小编Edw*_*ard的帖子

Django停止使用RuntimeError:populate()不可重入

我一直在使用WSGI开发部署在Apache服务器上的Django Web应用程序,一切都进展顺利.今天,我对我的应用程序进行了一些小的更改,admin.py试图自定义内置的Django Admin界面,并且最初产生了语法错误(一个未闭合的括号).这意味着当我触摸wsgi.py并加载代码时(我在我的虚拟主机上以守护进程模式运行WSGI),我的网站被替换为内部服务器错误,因为WSGI在遇到语法错误时停止了.

所以我修复了语法错误,检查了我没有更多manage.py check,并触及wsgi.py重新部署.但我的网站仍然显示内部服务器错误!检查Apache日志,这是我看到的:

[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter 'quotes.cs.cornell.edu|'.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/extra/www/html/quotes/quotes_django' to path.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/' to path.
[Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
  application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/ …
Run Code Online (Sandbox Code Playgroud)

apache django mod-wsgi django-wsgi

88
推荐指数
5
解决办法
7万
查看次数

GDB说"没有符号表",但nm显示文件有调试符号

我正在尝试使用GDB调试一个简单的C项目,但无论我如何编译它,GDB似乎都找不到该程序的调试符号.

当我将程序加载到GDB时,它声称已成功读取符号,因为它打印

Reading symbols from /home/edward/<executable>...done.
Run Code Online (Sandbox Code Playgroud)

但是,当我运行程序时,打破分段错误并输入info locals,它说

No symbol table info available.
Run Code Online (Sandbox Code Playgroud)

此外,bt显示执行在我写的函数(不是系统或库调用)内停止,但没有行号信息,只有原始内存地址.

为什么GDB不能找到或使用之前成功读取的符号?我已经运行nmobjdump在二进制文件我跑,他们都显示部分一样.debug_info,.debug_line,那么该文件实际上包含调试符号.

我通常用Makefile编译,设置以下标志:

CFLAGS = -mno-red-zone -fno-omit-frame-pointer -ggdb -O0 -I. -Wdeclaration-after-statement -Wall
Run Code Online (Sandbox Code Playgroud)

当我调用gcc时,我可以看到它被使用.但是,我尝试过更改为just -g,并通过调用gcc -g -O0简单的测试文件手动编译,结果仍然相同:二进制文件包含调试符号,GDB读取它们,但是调用任何GDB命令会产生一条消息调试信息不​​可用.

更新

我正在运行Ubuntu 12.04,我的GDB版本是7.4,而我的GCC版本是4.8.1.

如果我set complaints 10000在GDB然后加载文件,它会打印以下投诉:

Reading symbols from /home/edward/<snip>/minithread...
DW_AT_low_pc 0x400690 is not < DW_AT_high_pc 0x33 for DIE at 0x205 [in module /home/edward/<snip>/minithread]
...DW_AT_low_pc 0x4006c3 is not < DW_AT_high_pc 0xa9 for DIE at …
Run Code Online (Sandbox Code Playgroud)

c debugging gcc gdb

16
推荐指数
2
解决办法
2万
查看次数

如何解决 VS Code 中的“无法从源解析导入“django.contrib””?

当我创建一个新的 Django 项目时突然出现这个错误。我使用pip安装了虚拟环境中的所有软件包。

django python-3.x visual-studio-code

15
推荐指数
3
解决办法
4万
查看次数

如何在ViewModel中呈现(视图)模型的集合

我对C#/ WPF的MVVM设计有疑问.我看过几个演示应用程序,但它们并没有真正解决我的问题.我的应用程序由包含其他对象的对象组成.就像父子关系一样.

我现在的问题是:

  • children属性是否必须是ViewModel
  • 如果是这样,我如何通过ViewModels 创建包含现有 Child对象的新Parent对象?

我有以下情况:

class Child {
    string Name;
}

class ChildVM {
    Child _child;
    string Name{return _child.Name;}
}

class Parent {
    string Name;
    List<Child> children;
}

class ParentVM{
    Parent _parent;

    string Name{return _parent.Name;}
    List<ChildVM> children {get;set;}

    ParentVM(Parent p){_parent = p;}
}

void CreateANewParent(){
    List<ChildVM> children = new List<ChildVM>(){new ChildVM(new Child()),...};
    ParentVM parent = new ParentVM(new Parent());
    foreach(ChildVM child in children)
        parent.children.Add(child);
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,ParentVM包含ChildVM,但实际的Parent(在ParentVM内)没有ChildVM对象包含的Child对象.我也认为复制Child对象不是一个好主意,因为它会导致冗余,在我的应用程序上下文中也没有必要/可能创建新的Child对象.

我还考虑过以下课程设计:

class ParentVM {
    Parent _parent;

    string Name{return _parent.Name;}
    List<Child> children …
Run Code Online (Sandbox Code Playgroud)

collections wpf mvvm viewmodel

11
推荐指数
1
解决办法
3645
查看次数

iconv:从CP1252转换为UTF-8

我正在尝试将CP1252编码的字符串Çàïèñêèýêñïåäèòîðà转换为UTF-8.我试过这个命令:

iconv -c -f=WINDOWS-1252 -t=UTF-8 test.txt
Run Code Online (Sandbox Code Playgroud)

没有运气,得到一些奇怪的结果:

ÊÀÃÃÃÃÃÃÃÃÃÃÃ,,​​,,

我尝试在这里输入相同的字符串(Çàïèñêèýêñïåäèòîðà),他们可以毫无问题地转换它:http: //www.artlebedev.ru/tools/decoder/

出了什么问题?

iconv

11
推荐指数
4
解决办法
2万
查看次数

unique_ptr的临时只读副本

我对C++ 11的智能指针很陌生,我正试图在项目中有效地使用它们.在我的项目,我有很多的需要常量引用一个功能vectorunique_ptr,做一些关于它的计算,并把一些成果在返回参数,如下所示:

void computeCoefficients(const vector<unique_ptr<Scalar>>& roots, 
    vector<unique_ptr<Scalar>>& coeffs) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在使用,unique_ptr因为调用所有这些函数的过程是对象的唯一所有者vector,而函数只是"借用"对象以便将它们作为输入读取.

现在我正在尝试编写一个函数,在vector它接收的不同子集上进行计算,为了做到这一点,它需要有不同的"版本" vector包含这些子集,以便传递到另一个函数,vector<unique_ptr<Scalar>>作为输入.但获取向量子集的唯一方法是复制它 - 这是一个问题,因为unique_ptrs无法复制.我希望代码看起来像这样:

void computeOnSet(const vector<unique_ptr<Scalar>>& set, unique_ptr<Scalar>& output) {  
    ...
}

void computeOnAllSubsets(const vector<unique_ptr<Scalar>>& set, vector<unique_ptr<Scalar>>& outputs) {
    for(int i = 0; i < input.size(); i++) {
        auto subset = vector<unique_ptr<Scalar>>(set.begin(), set.begin()+i);
        subset.insert(subset.end(), set.begin()+i+1, set.end();
        computeOnSubset(subset, outputs.at(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

当然这不起作用.如果我用unique_ptrs 代替s,我可以使它工作shared_ptr,但这有两个问题:

  • 它在哲学上意味着我与该computeOnSubsets功能共享该组的所有权,而我不是; 呼叫者仍然是唯一的所有者.(我读到这shared_ptr意味着你与拥有副本的所有东西共享所有权). …

c++ shared-ptr stdvector unique-ptr c++11

10
推荐指数
1
解决办法
3343
查看次数

如何用Apache,mod_wsgi在Django项目中重新加载新的更新?

我正在使用Django框架制作一个项目.我用Apache + mod_wsgi托管了一个测试服务器.当我更改一些代码行时,我上传文件并在浏览器中进行测试.但除非我重新加载/重启(/etc/init.d/apache2 reload),否则不会显示新的更改.

除了重新加载Apache之外,还有其他方法可以重新加载/刷新新的更改吗?

apache django mod-wsgi

10
推荐指数
1
解决办法
7147
查看次数

在Java 2D中实现Polygon2D

我正在使用Java2D库在Java中创建2D游戏,我真的需要一个浮点精度的Polygon对象,我可以用它来绘制游戏对象并对它们进行碰撞检测.遗憾的是,Java的Polygon对象仅以int精度出现,并且没有像Rectangle和Rectangle2D那样的等效Polygon2D.我已经做了足够的研究,看到我有一些选择,但它们似乎都不是很好.

  1. 使用Path2D.根据Java开发人员在本论坛发帖称,缺少Polygon2D是一种疏忽,但其建议的替代品是Path2D.不幸的是,Path2D没有提供访问其各个顶点或边的方法,这是我进行碰撞检测所需要的(具体来说,我需要得到一个与每条边正交的矢量).

  2. 实现我自己的Polygon2D实现Shape接口,这样我仍然可以传递给它Graphics2D.draw(Shape).这看起来很难.Shape接口需要像contains(Rectangle2D)和那样的棘手实现方法getPathIterator(AffineTransform).对于getPathIterator特别,好像是为了实现它我需要返回类型的PathIterator的对象,但也有接口的PathIterator在公共AWT封装没有具体实现.

  3. 在一个"记住"各个顶点并将它们提供给客户端的对象中包裹Path2D.当我需要一个记住其组件形状的区域时,这对我有用:我将它包装在一个实现Shape接口的CompoundShape类中,并将所有Shape方法转发到Area的实现,同时跟踪添加到其中的每个Shape. ArrayList中的区域.这样做的问题是,如果我跟踪两个floats 数组中的各个顶点,就没有办法将它们暴露给用户而没有用户更改顶点的可能性 - 并且因为直接阵列访问会发生这种情况,内部Path2D不会收到有关更改的通知.

  4. 复制Polygon.java.Java的Polygon类的实际源代码可以在grepcode.com上找到,我可以简单地用ints 替换与顶点相关的floats来获得Polygon2D.不幸的是,当我尝试这个时,该行import sun.awt.geom.Crossings;抛出一个编译器错误,说"由于对所需库C:\ Program Files\Java\jre7\lib\rt.jar的限制,无法访问类型交叉".根据这个问题,因为Sun的许可协议阻止您用自己的替换核心Java类,但Polygon不会尝试这样做 - 它只是创建了一个类型为sun.awt.geom.Crossings的对象,没有替换或扩展发生了,我确保将我的Polygon副本放在一个名为"java"的包中.

进行此操作的最佳方法是什么?我很欣赏这些选项中的一个如何工作的建议,或者对于没有遇到这些问题的另一个选项的想法.

java awt java-2d

9
推荐指数
1
解决办法
8958
查看次数

究竟做什么h:c:f:和ui:表示在JSF标签库中?

在JSF和Facelets标签中,这些前缀究竟是什么?

  • H:
  • C:
  • F:
  • 用户界面:

例如:h:head c:catch f:event ui:decorate

java jsf servlets facelets java-ee

7
推荐指数
1
解决办法
4444
查看次数

C#集合由属性索引?

我经常遇到的一个问题是需要以这样的方式存储对象集合,以便我可以通过特定的字段/属性来检索它们,该字段/属性是该对象的唯一"索引".例如,我有一个Person对象,其name字段是唯一标识符,我希望能够从一些Person对象集合中检索Person其中name="Sax Russell".在Java中,我通常通过使用Map我真正想要的地方来实现这一点Set,并且总是使用对象的"索引"字段作为地图中的键,即peopleMap.add(myPerson.getName(), myPerson).我想在C#中用Dictionarys 做同样的事情,像这样:

class Person {
    public string Name {get; set;}
    public int Age {get; set;}
    //...
}

Dictionary<string, Person> PersonProducerMethod() {
    Dictionary<string, Person> people = new Dictionary<string, Person>();
    //somehow produce Person instances...
    people.add(myPerson.Name, myPerson);
    //...
    return people;
}

void PersonConsumerMethod(Dictionary<string, Person> people, List<string> names) {
    foreach(var name in names) {
        person = people[name];
        //process person somehow...
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这看起来很笨拙,并且在Dictionary …

c# linq collections

6
推荐指数
2
解决办法
3384
查看次数