GitPython package
从Python访问Git存储库。这会吸引更多的人
async package
. 在
async/__init__.py
,会发生以下情况:
def _init_signals():
"""Assure we shutdown our threads correctly when being interrupted"""
import signal
# ...
signal.signal(signal.SIGINT, thread_interrupt_handler)
_init_signals()
如果所有内容都在主线程中,则此方法可以正常工作。但是,当第一次导入
git
async
)发生在另一个线程上,事情就会发生:
ValueError: signal only works in main thread
我找到的一个解决办法是
import async
settings.py
,显然是在主线程上导入的。然而,这需要在每次安装的基础上完成,所以这对我的Django应用程序的用户不是很好。
我尝试捕获异常,但是引发异常的导入没有完全完成,因此下一步
导入异步
也会失败。
更新:我注意到Apache的mod\uwsgi足够聪明,可以忽略
signal
电话:
[Tue Sep 07 19:53:11 2010] [warn] mod_wsgi (pid=28595): Callback registration for signal 2 ignored.
不过,Django开发服务器仍然存在问题。