如何在多进程python程序中捕获Ctrl + C并优雅地退出所有进程,我需要解决方案在unix和windows上工作.我尝试过以下方法:
import multiprocessing
import time
import signal
import sys
jobs = []
def worker():
signal.signal(signal.SIGINT, signal_handler)
while(True):
time.sleep(1.1234)
print "Working..."
def signal_handler(signal, frame):
print 'You pressed Ctrl+C!'
# for p in jobs:
# p.terminate()
sys.exit(0)
if __name__ == "__main__":
for i in range(50):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
Run Code Online (Sandbox Code Playgroud)
它有点工作,但我不认为这是正确的解决方案.
编辑: 这可能与此重复
在eclipse(以及其他几个IDE)中,有一个选项可以在一定数量的命中之后打开断点.在Python中pdb,断点有一个命中计数,并且有condition命令.我如何连接它们?
鉴于编译lib,有没有办法告诉它是编译/md或/mt只是通过查看它(可能与dumpbin工具)?
编辑:
dumpbin /directives foo.lib对于lib未使用/GLswitch 编译的情况的解决方案.是否有选项可以检查lib以这种方式优化的文件?
我正在关注Heroku/Facebook集成的heroku教程(但我怀疑这个问题与facebook集成无关)而且我被困在我应该启动工头的舞台上(我已经为Windows安装了Heroku安装带) ,包括领班):
> foreman start
Run Code Online (Sandbox Code Playgroud)
得到:
C:/RailsInstaller/Ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find foreman (>= 0) amongst [POpen4-0.1.4, Platform-0.4.0, ZenTest-4.6.2, abstract-1.0.0, actionm
ailer-3.0.11, actionmailer-3.0.9, actionpack-3.0.11, actionpack-3.0.9, activemodel-3.0.11, activemodel-3.0.9, activerecord-3.0.11, activerecord-3.0.9, activerecord-sqlserver-adapter-3.0.15, activereso
urce-3.0.11, activeresource-3.0.9, activesupport-3.0.11, activesupport-3.0.9, addressable-2.2.6, annotate-2.4.0, arel-2.0.10, autotest-4.4.6, autotest-growl-0.2.16, autotest-rails-pure-4.1.2, autotest
-standalone-4.5.8, builder-2.1.2, bundler-1.0.15, diff-lcs-1.1.3, erubis-2.6.6, factory_girl-1.3.3, factory_girl_rails-1.0, faker-0.3.1, gravatar_image_tag-1.0.0.pre2, heroku-2.14.0, i18n-0.5.0, json-
1.6.1, launchy-2.0.5, mail-2.2.19, mime-types-1.17.2, mime-types-1.16, nokogiri-1.5.0-x86-mingw32, open4-1.1.0, pg-0.11.0-x86-mingw32, polyglot-0.3.3, polyglot-0.3.1, rack-1.2.4, rack-1.2.3, rack-moun
t-0.6.14, rack-test-0.5.7, rails-3.0.11, rails-3.0.9, railties-3.0.11, railties-3.0.9, rake-0.9.2.2, rake-0.8.7, rb-readline-0.4.0, rdoc-3.11, rdoc-3.8, rest-client-1.6.7, rspec-2.6.0, rspec-core-2.6. …Run Code Online (Sandbox Code Playgroud) 我在本地训练了一个sklearn分类器,我必须创建一个简单的Web应用程序来演示它的用途.我是Web应用程序开发的完整菜鸟,我不想浪费时间使用不支持我正在使用的模块的框架创建Web应用程序.
Heoku,django或者是否有更简单,更快速的解决方案来进行简单的科学演示?我的想法是采取我训练的分类器,腌制它并在服务器上取消它,然后classify从服务器运行,但我不知道从哪里开始.
在下面的代码中,什么更有效/更'Pythonic'?使用try-catch子句或if-else子句?
fname = 'AdobeARM.log'
letters = {}
with open(fname,'r') as f:
for line in f:
for c in line:
try:
letters[c] += 1
except KeyError:
letters[c] = 1
print letters
Run Code Online (Sandbox Code Playgroud)
VS.
fname = 'AdobeARM.log'
letters = {}
with open(fname,'r') as f:
for line in f:
for c in line:
if letters.has_key(c):
letters[c] += 1
else:
letters[c] = 1
print letters
Run Code Online (Sandbox Code Playgroud)
我倾向于使用try catch选项,但我不确定为什么.
os.fork() Windows下不支持命令,并给出以下错误:
AttributeError: 'module' object has no attribute 'fork'
Run Code Online (Sandbox Code Playgroud)
所以一般的问题是如何运行包含os.fork()Windows下调用的脚本?.我不介意使用只会模仿行为并且运行速度慢得多的东西,它只用于测试.我也不想更改脚本,因为它是第三方模块.
为了给你一个更广泛的角度来看,我想使用该模块rq也称为redis queueWindows上.最终我将在Heroku服务器上运行代码,这是一台Linux机器,但在开发Web应用程序期间,我正在使用Windows.
参考这个Python列表理解与.地图问题,有人可以解释为什么List Comprehensions map在列表理解不调用函数时会给出更好的结果,即使在没有lambda函数map但是在调用函数时给出最差的结果时?
import timeit
print timeit.Timer('''[i**2 for i in xrange(100)]''').timeit(number = 100000)
print timeit.Timer('''map(lambda i: i**2, xrange(100))''').timeit(number = 100000)
print timeit.Timer(setup="""def my_pow(i):
return i**2
""",stmt="""map(my_pow, xrange(100))""").timeit(number = 100000)
print timeit.Timer(setup="""def my_pow(i):
return i**2
""",stmt='''[my_pow(i) for i in xrange(100)]''').timeit(number = 100000)
Run Code Online (Sandbox Code Playgroud)
结果:
1.03697046805 <-- list comprehension without function call
1.96599485313 <-- map with lambda function
1.92951520483 <-- map with function call
2.23419570042 <-- list comprehension with function call
Run Code Online (Sandbox Code Playgroud) 从MySQL查询打印结果的最简单方法是什么,就像MySQL使用Python在控制台中打印它们一样?例如,我想得到类似的东西:
+---------------------+-----------+---------+
| font | documents | domains |
+---------------------+-----------+---------+
| arial | 99854 | 5741 |
| georgia | 52388 | 1955 |
| verdana | 43219 | 2388 |
| helvetica neue | 22179 | 1019 |
| helvetica | 16753 | 1036 |
| lucida grande | 15431 | 641 |
| tahoma | 10038 | 594 |
| trebuchet ms | 8868 | 417 |
| palatino | 5794 | 177 |
| lucida sans unicode …Run Code Online (Sandbox Code Playgroud) 是否有用于调试python的sublime text 2的插件?Sublime Text是python的一个很好的编辑器,但是一旦项目变得太大,我就必须使用其他IDE(例如eclipse)进行调试.
做任何你Pythonists有针对此问题的解决方案?
python ×8
debugging ×2
performance ×2
c++ ×1
facebook ×1
foreman ×1
heroku ×1
mysql ×1
pdb ×1
scikit-learn ×1
signals ×1
sublimetext2 ×1
visual-c++ ×1