小编Han*_*etz的帖子

如何在Windows中将Python脚本作为服务运行?

我正在描绘一组程序的架构,这些程序共享存储在数据库中的各种相互关联的对象.我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,以及通过该服务访问对象的其他程序.

我目前的目标是将Python和Django框架作为实现该服务的技术.我很确定我想知道如何在Linux中守护Python程序.但是,它是系统应支持Windows的可选规范项.我对Windows编程没什么经验,也没有Windows服务的经验.

是否可以将Python程序作为Windows服务运行(即在没有用户登录的情况下自动运行)?我不一定要实现这一部分,但我需要大致了解如何做以决定是否按照这些方式进行设计.

编辑:感谢目前为止的所有答案,它们非常全面.我想知道一件事:Windows如何了解我的服务?我可以使用本机Windows实用程序进行管理吗? 在/etc/init.d中放置一个启动/停止脚本相当于什么?

python windows cross-platform

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

在Java中,类静态中的枚举类型是什么?

我似乎无法从枚举中访问周围类的实例成员,因为我可以从内部类中访问.这是否意味着枚举是静态的?是否可以访问周围类的实例的范围,或者我是否必须将实例传递到我需要它的枚举方法中?

public class Universe {
    public final int theAnswer;

    public enum Planet {
        // ...
        EARTH(...);
        // ...

        // ... constructor etc.

        public int deepThought() {
            // -> "No enclosing instance of type 'Universe' is accessible in this scope"
            return Universe.this.theAnswer;
        }
    }

    public Universe(int locallyUniversalAnswer) {
        this.theAnswer = locallyUniversalAnswer;
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums scope

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

为什么JS中的isNaN(null)== false?

JS中的这段代码给了我一个弹出窗口,说"我认为null是一个数字",我觉得有点令人不安.我错过了什么?

if (isNaN(null)) {
  alert("null is not a number");
} else {
  alert("i think null is a number");
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Firefox 3.这是一个浏览器错误吗?

其他测试:

console.log(null == NaN);   // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
Run Code Online (Sandbox Code Playgroud)

那么,问题似乎不是与NaN的精确比较?

编辑:现在问题已经得到解答,我已经清理了我的帖子,以便为存档提供更好的版本.然而,这使得一些评论甚至一些答案有点难以理解.不要责怪他们的作者.我改变的事情包括:

  • 删除了一条说明,说我首先通过恢复其含义搞砸了标题
  • 早期的答案显示我没有明确说明为什么我认为这种行为很奇怪,所以我添加了检查字符串并进行手动比较的示例.

javascript

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

.NET/Mono或Java是跨平台开发的更好选择吗?

Mono的库比Java少了多少?

我缺乏两种选择的概述,但我对下一个项目有很大的选择自由.我正在寻找有关技术领域的经验

  • 性能(例如,我被告知Java有利于线程化,我听说运行时代码优化最近已经变得非常好用于.NET)
  • 真实世界的可移植性(它既可以是便携式的,也可以是每个Catch-22的?)
  • 工具可用性(CI,构建自动化,调试,IDE)

我特别关注你在自己的工作中经历的事情而不是我可以google的事情.我的应用程序将是一个后端服务处理来自时间序列的大量数据.

我的主要目标平台是Linux.

编辑: 为了更充分地说出我的问题,我对整个包(第三方库等)感兴趣,而不仅仅是语言.对于图书馆来说,这可能归结为"Mono比Java更少的库"这个问题?


仅供参考,我已经为这个项目选择了Java,因为它似乎在可移植性方面更具战斗性,并且它在旧系统上已经存在了一段时间.我有点难过,因为我对C#非常好奇,我很乐意做一些大项目,但也许下次.感谢所有的建议.

.net java linux mono cross-platform

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

如何用doxygen记录Python代码

我喜欢doxygen来创建C或PHP代码的文档.我有一个即将推出的Python项目,我想我记得Python没有/* .. */评论,并且还有自己的自我文档工具,这似乎是pythonic的文档方式.

由于我熟悉doxygen,我如何使用它来生成我的Python文档?有什么特别需要注意的吗?

python documentation doxygen docstring python-sphinx

84
推荐指数
5
解决办法
10万
查看次数

如何在Python中从数组中选择随机元素?

我用Google搜索的第一个例子不起作用.这应该是微不足道的吧?

python arrays random

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

在PHP(> = 5.0)中,通过引用更快地传递?

在PHP中,函数参数可以通过在函数声明中的参数前加一个&符号来引用,如下所示:

function foo(&$bar)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道这不是为了提高性能,而是为了允许函数更改通常超出其范围的变量.

相反,PHP似乎使用Copy On Write来避免复制对象(也可能是数组),直到它们被更改为止.因此,对于不更改其参数的函数,效果应与通过引用传递它们的效果相同.

但是,我想知道Copy On Write逻辑是否可能在传递引用时短路,以及是否会对性能产生任何影响.

ETA:可以肯定的是,我认为它并不快,而且我很清楚这不是引用的内容.所以我认为我自己的猜测非常好,我只是想找一个真正知道发生在幕后的人的回答.在PHP开发的五年中,我总是发现很难通过阅读源来获得PHP内部的高质量信息.

php performance pass-by-reference

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

什么是"向下的funargs"?

Jamie Zawinski在他的(1997)文章"java sucks"中使用了这个术语,好像你应该知道这意味着什么:

我真的很讨厌缺乏向下的乐趣; 匿名类是一个蹩脚的替代品.(我可以没有长寿的闭包,但我发现缺少功能指针是一个巨大的痛苦.)

它似乎是Lisper的俚语,我可以在这里找到以下简短的定义,但不知何故,我想我仍然没有得到它:

许多闭包只在它们引用的绑定范围内使用; 这些在Lisp的说法中被称为"向下的funargs".

如果不是Steve Yegge,我现在感觉很愚蠢,但似乎可以问:

Jamie Zawinski是一位英雄.一个活生生的传奇 [...] 一个人可以使用"向下的funargs"一词,然后瞪着你,只是敢于要求他解释它,你克里汀.

- XEmacs死了,XEmacs万岁

那么在这里有一个Lisper可以为我这样的C风格程序员编译吗?

lisp functional-programming terminology

56
推荐指数
4
解决办法
4526
查看次数

为什么JAXB在Apache Felix中运行时找不到我的jaxb.in​​dex?

它就在那里,在它应该索引的包中.我还是打电话的时候

JAXBContext jc = JAXBContext.newInstance("my.package.name");
Run Code Online (Sandbox Code Playgroud)

我得到一个JAXBException说

"my.package.name"不包含ObjectFactory.class或jaxb.in​​dex

虽然它确实包含两者.

什么工作,但不是我想要的,是

JAXBContext jc = JAXBContext.newInstance(my.package.name.SomeClass.class);
Run Code Online (Sandbox Code Playgroud)

来自其他人的这个问题出现在一些邮件列表和论坛上,但似乎没有得到答案.

我在OpenJDK 6上运行它,所以我获得了源包并将调试器放入库中.它首先查找jaxb.properties,然后查找系统属性并且无法找到,它尝试使用com.sun.internal.xml.bind.v2.ContextFactory创建默认上下文.在那里,异常被抛出(内部ContextFactor.createContext(String ClassLoader, Map)),但我看不到发生了什么,因为源不在这里.

ETA:

从ContentFactory的源代码判断,我在这里发现,这可能是那些无法按预期工作的代码:

/**
 * Look for jaxb.index file in the specified package and load it's contents
 *
 * @param pkg package name to search in
 * @param classLoader ClassLoader to search in
 * @return a List of Class objects to load, null if there weren't any
 * @throws IOException if there is an error reading the index …
Run Code Online (Sandbox Code Playgroud)

java osgi jaxb apache-felix

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

如何在普通C中启动线程?

我在C中使用了fork()来启动另一个进程.如何开始新线程?

c multithreading

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