小编Sal*_*ley的帖子

如何使Windows文件锁定更像UNIX文件锁定?

UNIX文件锁定非常简单:操作系统假定您知道自己在做什么并让您按照自己的意愿行事:

例如,如果您尝试删除另一个进程已打开的文件,操作系统通常会让您这样做.原始进程仍然保留它的文件句柄,直到它终止 - 此时文件系统将悄悄地重新循环磁盘资源.不用大惊小怪,这就是我喜欢它的方式.

Windows上的不同之处:如果我尝试删除另一个进程正在使用的文件,则会出现操作系统错误.该文件是不可触及的,直到原始进程释放它对文件的锁定.在MS-DOS的单用户时代,当任何锁定进程可能在包含文件的同一台计算机上时,这是很棒的,但是在网络上这是一场噩梦:

考虑在写入Windows文件服务器上的共享文件时进程挂起时会发生什么.在删除文件之前,我们必须找到计算机并在最初打开文件的计算机上标识进程.只有这样我们才能杀死进程并删除我们不需要的文件.

真讨厌!

有没有办法让这更好?我想要的是Windows上的文件锁定在UNIX中表现得像文件锁定.我希望操作系统让我做我想做的事,因为我负责,我知道我在做什么......

......那可以吗?

unix windows

19
推荐指数
2
解决办法
8560
查看次数

在Java中,与提高Python ValueError类似的是什么?

如果我正在编写一个Python函数,它接收到一个具有正确类型的参数,但是一个超出范围的值,那么我可能抛出一个ValueError或其中一个子类.

例如,假设我有一个功能,它将发票上的价格加起来.如果其中一个价格为负值或其中一个项目计数不是正数且非零,我可能会提高VE.

我目前的项目是Java,但情况是一样的:

定价函数只接受特定范围内的数字 - 抛出的最明智的异常对象是什么告诉另一个Java开发人员他们的输入超出了合理的范围?

python java

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

如何在python中验证域的MX记录?

我有大量的电子邮件地址要验证.最初我用正则表达式解析它们以抛弃那些完全疯狂的东西.我留下那些看起来合理但仍然可能包含错误的东西.

我想找到哪些地址有有效域名,所以给我me@abcxyz.com我想知道是否有可能发送电子邮件到abcxyz.com.

我想测试它是否与有效的A或MX记录相对应 - 是否有一种简单的方法只使用Python标准库?为了支持这个功能,我宁愿不为我的项目添加额外的依赖项.

python email dns

14
推荐指数
1
解决办法
7055
查看次数

当eclipse输出控制台滚动时,恼人的错误对话框.是什么造成的?

当我在Eclipse中使用Pydev运行python脚本时 - 几秒钟后我得到一个eclipse Error对话框.

窗口标题是"已发生多个问题".

该框有一个红色X图标,旁边出现错误消息"发生了内部错误"

错误窗口列表都有文本"显示文档结尾".如果我点击详细信息,我会收到后续消息

An internal error has occurred.
39
Run Code Online (Sandbox Code Playgroud)

这个问题似乎与控制台有关.我注意到滚动条丢失了.我有时可以使用箭头键滚动,但滚动偶尔会导致控制台区域陷入困境.我用google搜索"Reveal End of Document"应该是一个exclipse IDE函数,它应该导致控制台跳到最后.

有没有人知道可能会发生什么?我该如何解决这个问题?真的很烦人.

在最新的Sun JDK上使用Eclipse 3.6,在Windows XP 32位上使用Pydev插件.

eclipse pydev

13
推荐指数
3
解决办法
9925
查看次数

在Sphinx doc生成器中,我可以将整个包(recursivly)添加到索引吗?

我想为我的包生成文档.项目中的每个文件都包含大量文档.有没有办法快速将我的整个项目添加到documetation索引?

我想尽可能少地为整个项目生成一些文档.我首先将以下内容添加到index.rst:

.. automodule:: mymodulename
    :members:
Run Code Online (Sandbox Code Playgroud)

所有似乎已经完成的是文件中的文档元素__init__.py(只是文档字符串) - 有什么方法可以让它记录其他所有内容吗?我希望绝对添加我的包中定义的所有内容,并将包中的每个类,常量,函数(等)添加到适当的索引中.

可以这样做吗?

python python-sphinx

13
推荐指数
1
解决办法
3707
查看次数

如何手动安装旧的cygwin包?

我正在处理的项目需要旧版本的SLAPD(LDAP服务器),并且必须在Windows上运行,因此我使用的是cygwin软件包:

我在这里找到了一个slapd版本的二进制包我需要2.2.x:

http://www.mirrorservice.org/sites/sourceware.org/pub/cygwin/release/ ...

如何在cygwin中手动安装它?它似乎不是包管理器文件格式(如RPM或Deb),但是有没有工具可以为我安装它?

仅供参考,我在企业防火墙后面操作,阻止我查看主要的cygwin站点(包括文档),所以请没有人告诉我RTFM - 我希望我能!

谢谢

windows cygwin openldap

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

是否有一种美妙的方式来断言Java方法中的前提条件?

我的很多函数在声明之下都有一大堆验证代码:

if ( ! (start < end) ) {
    throw new IllegalStateException( "Start must be before end." );
    }
Run Code Online (Sandbox Code Playgroud)

我想精确地指定某些输入的有效范围 - 例如A> B,C => 1或str_d.length()> 0.

鉴于我的一些函数有很多必须经过验证的论证,我最终可能会编写大量的样板来验证前置条件.我正在编写一个主要由非技术开发人员使用的库,我们发现验证函数输入是帮助我们的用户正确操作API的最佳方法.我们越早提出错误,客户就越不需要做的工作.

是否有更优雅的方法来指定我的方法中的前置条件,后置条件(以及可能的不变条件).

一位同事告诉我有关Eiffel编程语言的一个特性,它允许以非常自然的方式描述前/后/不变条件,而无需重复大量的样板代码.是否有Java语言的附加组件,这将允许我使用这些魔术?

java eiffel contract

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

替换python的httplib?

我有一个python客户端,通过标准库的httlib推送大量数据.用户抱怨应用程序运行缓慢.我怀疑这可能部分是由于我使用的HTTP客户端.

我可以通过用其他东西替换httplib来提高性能吗?

我已经看到twisted提供了一个HTTP客户端.与其他协议产品相比,它似乎非常基础.

PyCurl可能是一个有效的替代方案,但它的使用似乎非常非pythonic,另一方面,如果它的性能非常好,那么我可以忍受一些非pythonic代码.

所以,如果您有更好的Python客户端库经验,请告诉我.我想知道你对httplib的性能以及你对实现质量的看法.

更新0:我对httplib的使用实际上非常有限 - 替换需要执行以下操作:

conn = httplib.HTTPConnection(host, port)
conn.request("POST", url, params, headers)
compressedstream = StringIO.StringIO(conn.getresponse().read())
Run Code Online (Sandbox Code Playgroud)

这就是全部:没有代理,重定向或任何花哨的东西.这是普通的HTTP.我只需要能够尽快完成它.

更新1:我坚持使用Python2.4并且我正在使用Windows 32.请不要告诉我有关使用httplib的更好方法 - 我想了解一些httplib的替代方法.

python curl http twisted

10
推荐指数
3
解决办法
7086
查看次数

为什么这个pyd文件不能在某些计算机上导入?

我的python项目有一个C++组件,它在Python egg中作为.pyd文件进行编译和分发.我注意到它似乎与我们的一些全新的64位Windows服务器不兼容.我们有4台(据称)相同配置的机器 - 每台机器运行Windows 2003服务器64位版本,但其中2台机器不允许我调用鸡蛋中的功能.

经过一些实验,我能够找到一个产生可重现错误的配方.当Python尝试导入pyd文件时,似乎会出现此问题.

我将pyd复制到临时文件夹并从该位置运行Python.exe,顺便说一句,我们仍在使用32位版本的Python 2.4.4,因为我们的库都没有移植到64位架构.接下来我尝试导入我的模块(称为pyccalyon).我第一次尝试这个时收到一条错误消息:

"ImportError: DLL load failed: The specified module could not be found"
Run Code Online (Sandbox Code Playgroud)

下次我尝试这个时,python解释器崩溃了:没有堆栈跟踪!

当然你怀疑我的PYD - 关于这一点的奇怪之处在于它已经在数千台PC和10台其他服务器上使用,其中许多是相同规格的64位机器.该项目在开发和发布后都会不断进行测试,所以如果这个东西非常不稳定,我们很久以前就会知道它.这个组件被认为是稳定的代码,所以令人惊讶的是,它的突破性非常强大.

有什么建议我可以做什么来调试这个麻烦的库?在这一点上,疯狂的想法很受欢迎,因为我们已经用尽了所有明智的想法.

谢谢!

更新0:好的使用进程监视器我能够将一个失败的64位服务器与另一个运行良好的服务器进行比较.我发现破损似乎是由于缺少DLL,SysWOW64/mscoreee.dll而发生的 - 任何想法这个组件是什么以及我可以在哪里得到它?我可以将这个问题反馈给我们可以安装东西的IT配置人员.

python windows

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

python脚本可以持久地更改Windows环境变量吗?(典雅)

继我之前的问题之后,是否有可能制作一个持久更改Windows环境变量的Python脚本?

一旦python解释器终止,对os.environ的更改不会保留.如果我在UNIX上编写脚本,我可能会这样做:

set foo=`myscript.py`
Run Code Online (Sandbox Code Playgroud)

但是,唉,cmd.exe没有任何像sh的后退行为一样的东西.我已经看到了一个非常冗长的解决方案......它确实非常可靠,我们可以改进这个:

for /f "tokens=1* delims=" %%a in ('python  ..\myscript.py') do set path=%path%;%%a
Run Code Online (Sandbox Code Playgroud)

当然,微软的头脑有一个比这更好的解决方案!

注意:这个问题的完全重复.

python windows scripting batch-file

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