소스 검색

Python2.6 must use `-m celery.__main__`. Closes #1573

Ask Solem 11 년 전
부모
커밋
55344b2aef
1개의 변경된 파일14개의 추가작업 그리고 1개의 파일을 삭제
  1. 14 1
      celery/bin/multi.py

+ 14 - 1
celery/bin/multi.py

@@ -145,6 +145,16 @@ def main():
     sys.exit(MultiTool().execute_from_commandline(sys.argv))
 
 
+CELERY_EXE = 'celery'
+if sys.version_info < (2, 7):
+    # pkg.__main__ first supported in Py2.7
+    CELERY_EXE = 'celery.__main__'
+
+
+def celery_exe(*args):
+    return ' '.join((CELERY_EXE, ) + args)
+
+
 class MultiTool(object):
     retcode = 0  # Final exit code.
 
@@ -235,7 +245,10 @@ class MultiTool(object):
     def with_detacher_default_options(self, p):
         p.options.setdefault('--pidfile', '%N.pid')
         p.options.setdefault('--logfile', '%N.log')
-        p.options.setdefault('--cmd', '-m celery worker --detach')
+        p.options.setdefault(
+            '--cmd',
+            '-m {0}'.format(celery_exe('worker', '--detach')),
+        )
 
     def signal_node(self, nodename, pid, sig):
         try: