解决这个问题最优雅的方法是什么:
内置函数的工作方式如下
>>> path = r"c:\scr.txt"
>>> file1 = open(path, "w")
>>> print file1
<open file 'c:\scr.txt', mode 'w' at 0x019F88D8>
>>> file2 = open(path, "w")
>>> print file2
<open file 'c:\scr.txt', mode 'w' at 0x02332188>
>>> file1.write("111")
>>> file2.write("222")
>>> file1.close()
Run Code Online (Sandbox Code Playgroud)
scr.txt现在包含'111'.
>>> file2.close()
Run Code Online (Sandbox Code Playgroud)
scr.txt被覆盖,现在包含'222'(在Windows上,Python 2.4).
解决方案应该在同一个进程中工作(如上例所示)以及另一个进程打开文件时.
如果崩溃程序不能保持锁定打开,则是首选.
我有一个需要Python 2.4或更高版本的Python 2项目('foo 0.1.7').
现在我将它移植到Python 3('foo 0.2.0'),它仍然与Python 2兼容,但现在要求已经提升到Python 2.6或更高版本.
--target-version=2.6setup.py 的选项,可以使用upload,但这似乎不是'2.6或更高'setup命令有一个install_requires选项,但这是针对所需的包,而不是Python解释器.我可以在'foo 0.2.0'的setup.py中做类似的事情:
if sys.hexversion < 0x02060000:
raise RuntimeError('This package requires Python 2.6 or later, try foo 0.1.7')
Run Code Online (Sandbox Code Playgroud)
但我希望easy_install foo能以某种方式解决这个问题.
那么,我应该如何在PyPI上部署它呢?
我安装了这个
我想在所有这些python安装上测试代码.
(类似的问题在Windows上使用virtualenv -p(和virtualenvwrapper-win)的多个python版本没有回答这个问题.)
这是我到目前为止所尝试的:
Python 2.4给出了语法错误(创建了一个环境,但安装了PY27!):
>virtualenv -p c:\apps\Python24\python.exe env24_v
Running virtualenv with interpreter c:\apps\Python24\python.exe
File "C:\apps\Python27\lib\site-packages\virtualenv.py", line 1508
cp_or_ln = (os.symlink if symlink else copyfile)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
显然不支持Python 2.5(没有创建环境):
C:\Users\martin>virtualenv -p c:\apps\Python25\python.exe env25
Running virtualenv with interpreter c:\apps\Python25\python.exe
ERROR: None
ERROR: this script requires Python 2.6 or greater.
Run Code Online (Sandbox Code Playgroud)
Python 2.6按预期工作:
C:\Users\martin\.virtualenvs>virtualenv -p c:\apps\Python26\python.exe env26
Running virtualenv with interpreter …Run Code Online (Sandbox Code Playgroud) 我有两个不相关的存储库'public'和'develop':
prj/
public/
develop/
Run Code Online (Sandbox Code Playgroud)
'develop'有很多提交,因为这是我工作的地方.甚至可能是多个脑袋我不时会发布开发资料库的快照.
从公共文件夹我可以这样做:
>hg pull -f ../develop
>hg merge
>hg commit -m "alpha2"
Run Code Online (Sandbox Code Playgroud)
但这也将完整的变革集历史从"发展"转变为"公共"(这不是我想要的).
我也可以删除'public'中的所有文件,除了'.hg'子文件夹.然后手动复制'develop'目录中的所有文件并执行
>hg commit -m "alpha2"
Run Code Online (Sandbox Code Playgroud)
但后来我必须'添加'新文件,'删除'过时文件并'重命名'再次移动文件.
使用-A带有提交的选项会盲目地添加/删除所有文件,即使它们在"开发"存储库中不受控制.
必须有一个更有效的方法来做到这一点;-)
我正在使用Adam Shaw的FullCalendar控件以及jQuery.我想为事件和日子添加一个上下文菜单.通过使用Martin Wendt的Context Menu控件,我能够实现这一目标.我在事件上注册菜单的代码如下所示:
$('#calendar').fullCalendar({
// Other arguments
eventRender: function (event, element) {
var originalClass = element[0].className;
element[0].className = originalClass + ' hasmenu';
},
dayRender: function (day, cell) {
var originalClass = cell[0].className;
cell[0].className = originalClass + ' hasmenu';
});
});
Run Code Online (Sandbox Code Playgroud)
我实际上是hasmenu在日历中添加一个调用每个事件和日期的类.
$(document).contextmenu({
delegate: ".hasmenu",
preventContextMenuForPopup: true,
preventSelect: true,
menu: [
{title: "Cut", cmd: "cut", uiIcon: "ui-icon-scissors"},
{title: "Copy", cmd: "copy", uiIcon: "ui-icon-copy"},
{title: "Paste", cmd: "paste", uiIcon: "ui-icon-clipboard", disabled: true },
],
select: …Run Code Online (Sandbox Code Playgroud) 右键单击时,如何使用http://jqueryui.com/menu/作为上下文菜单。有插件吗?
的jquery-1.9.0 jquery-ui-1.10.0
python ×3
jquery ×2
asp.net ×1
css ×1
file ×1
fullcalendar ×1
jquery-ui ×1
locking ×1
mercurial ×1
merge ×1
pypi ×1
python-2.4 ×1
python-2.5 ×1
setuptools ×1
virtualenv ×1
windows ×1