小编and*_*d3p的帖子

在启动时将python脚本作为守护进程运行(Ubuntu)

我用werkzeug创建了小型web服务器,我可以用普通的python方式运行它python my_server.py.页面加载,一切正常.现在我想在我的电脑启动时启动它.最简单的方法是什么?我一直在与暴发户挣扎,但它似乎并没有"生活在后台"因为我执行后start my_server立即收到kernel: [ 8799.793942] init: my_server main process (7274) terminated with status 1

my_server.py:

...
if __name__ == '__main__':
    from werkzeug.serving import run_simple
    app = create_app()
    run_simple('0.0.0.0', 4000, app)
Run Code Online (Sandbox Code Playgroud)

upstart配置文件my_server.conf:

description "My service"
author  "Some Dude <blah@foo.com>"
start on runlevel [2345]
stop on runlevel [016]
exec /path/to/my_server.py
start on startup
Run Code Online (Sandbox Code Playgroud)

任何想法如何使其工作?或者任何其他更好的守护脚本的方法?

更新: 我认为问题在于my_server.py.它似乎并不首先启动Web服务器(方法run_simple()).应该采取哪些步骤使.py文件由任务处理程序(如upstart)运行?

  • 将shebang作为第一线 #!/usr/bin/env python
  • 允许执行权限 chmod 755
  • 以超级用户权限启动守护程序(绝对确保没有权限限制阻止它启动)
  • 确保所有python库都在那里!
  • 别的什么?

解决: 问题是缺少python依赖.通过任务管理器(例如upstartstart-stop-daemon)启动脚本时,不会抛出任何错误.需要绝对确定pythonpath包含您需要的一切.

python upstart werkzeug

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

OpenERP始终显示继承的视图而不是原始视图

原始观点:

<record id='view_1' model='ir.ui.view'>
    <field name="name">view.name</field>
    <field name="model">my.object</field>
    <field name="priority" eval="17"/>
    <field name="type">form</field>
    <field name="arch" type="xml">
        ...
    </field>
</record>
Run Code Online (Sandbox Code Playgroud)

从原来继承的观点:

<record id='view_2' model='ir.ui.view'>
    <field name="name">view.name</field>
    <field name="model">my.object</field>
    <field name="priority" eval="10"/>
    <field name="inherit_id" ref="view_1"/>
    <field name="type">form</field>
    <field name="arch" type="xml">
        ...
    </field>
</record>
Run Code Online (Sandbox Code Playgroud)

所以会发生什么是OpenERP总是显示忽略优先级值的继承视图.这是预期的行为,还是我缺少的其他东西?

如果这是预期的行为,请进一步阅读:-)

my.second.objectmany2onemy.object,当我想创建my.object从这个领域,我想开的有点不同形式的看法my.object.我正在尝试为此目的创建一个不同的视图,但正如你所看到它不那么容易(或者它?).

任何帮助表示赞赏.

openerp

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

如何在Odoo中重新计算存储的功能字段值?

有时必须重新计算存储的字段,但无法启动触发器(例如,在SQL注入的情况下).

如何轻松地重新计算它们?

openerp odoo-8

5
推荐指数
3
解决办法
4524
查看次数

OSV方法的return语句

在OpenERP中,OSV对象可以返回可以打开新视图或激活操作的内容.例如,sale.ordermanual_invoice返回以下内容的方法:

    return {
        'name': _('Customer Invoices'),
        'view_type': 'form',
        'view_mode': 'form',
        'view_id': [res_id],
        'res_model': 'account.invoice',
        'context': "{'type':'out_invoice'}",
        'type': 'ir.actions.act_window',
        'nodestroy': True,
        'target': 'current',
        'res_id': inv_ids and inv_ids[0] or False,
    }
Run Code Online (Sandbox Code Playgroud)

它会在同一窗口中打开发票表单视图.

我已经看到'view_id': [res_id],被改变'views': [(id2, 'form')],,其他部分也被修改,它仍然有效.

所以我不明白这个机制是如何运作的.是什么决定了返回字典中的哪些值?我怎么知道哪些是强制性的,哪些不是强制性的?

非常感谢!

python openerp

4
推荐指数
1
解决办法
1050
查看次数

从按钮或菜单打开特定对象

如何在按下菜单项或按钮时打开特定对象?如果您想要对类似配置的对象进行排序(仅需要一个对象来保存数据,例如用户名和密码),这将非常有用.

我尝试过使用view_init方法和active_id上下文键,但没有运气.有人能指出我正确的方向吗?

openerp

4
推荐指数
1
解决办法
1592
查看次数

如何在7.0上将附件存储到本地文件系统?

我一直在努力配置我的服务器以将所有附件存储到本地文件系统而不是数据库.你如何在OpenERP 7.0服务器上做到这一点?

openerp

3
推荐指数
1
解决办法
3862
查看次数

Python高级列表排序

以下列表具有格式(ID,级别,值):

[(A, 1, None),
 (B, 1, None),
 (C, 1, None),
 (A, 2, 1.1),
 (B, 2, 5.0),
 (C, 2, 5.0),
 (C, 3, 40),
 (B, 3, 55)]
Run Code Online (Sandbox Code Playgroud)

因此,捕获的是根据它们的值从较低的一个级别对具有相同的相同级别的项目进行排序.如果下面一个级别的值相等,则它会低于2级,依此类推.所以结束列表应如下所示:

[(A, 1, None),
 (C, 1, None), <- this moved up because @ lvl3 C['value'] < B['value']
 (B, 1, None),
 (A, 2, 1.1),
 (C, 2, 5.0), <- this moved up because @ lvl3 C['value'] < B['value']
 (B, 2, 5.0),
 (C, 3, 40),
 (B, 3, 55),]
Run Code Online (Sandbox Code Playgroud)

有人可以建议一个算法来实现吗?顺便说一句,我总是得到按值 …

python sorting list

0
推荐指数
1
解决办法
129
查看次数

标签 统计

openerp ×5

python ×3

list ×1

odoo-8 ×1

sorting ×1

upstart ×1

werkzeug ×1