【发布时间】:2016-10-11 08:48:19
【问题描述】:
我正在开发一个 Django 项目,用户可以在其中通过 Web UI 执行 python 脚本。我正在使用Wooey 创建用户界面。 Celery 用作任务队列(RabbitMQ 作为代理)。该站点通过 CentOS 在小型 Apache 服务器上运行(不确定 Linux 版本)。
我已经设法让我的网站运行 Wooey 提供的测试脚本和我自己的几个脚本。 当我尝试通过此服务器上的站点执行某个大型脚本时,问题就出现了。该脚本在本地主机上运行良好(即通过 manage.py runserver 启动我的站点)。但是,每次我尝试将此脚本提交到服务器上的任务队列(通过网站)时都会弹出某个错误:
-------------- celery@RK-DEP-APACHE01.company.local v3.1.23 (Cipater)
---- **** -----
--- * *** * -- Linux-3.10.0-229.el7.x86_64-x86_64-with-centos-7.1.1503-Core
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: default:0x15fcc10 (.default.Loader)
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery exchange=celery(direct) key=celery
[tasks]
. skipid.celery.debug_task
. wooey.tasks.WooeyTask
. wooey.tasks.submit_script
[2016-06-10 10:33:59,386: INFO/Beat] beat: Starting...
[2016-06-10 10:33:59,401: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2016-06-10 10:33:59,426: INFO/MainProcess] mingle: searching for neighbors
[2016-06-10 10:34:00,435: INFO/MainProcess] mingle: all alone
[2016-06-10 10:34:00,454: WARNING/MainProcess] celery@RK-DEP-APACHE01.company.local ready.
[2016-06-10 10:34:03,275: INFO/MainProcess] Received task: wooey.tasks.submit_script[0dea8557-a69f-4685-8ba4-0a 675461a76d]
[2016-06-10 10:34:03,314: ERROR/MainProcess] Task wooey.tasks.submit_script[0dea8557-a69f-4685-8ba4-0a675461a76 d] raised unexpected: IOError()
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/wooey/tasks.py", line 49, in submit_script
command = utils.get_job_commands(job=job)
File "/usr/lib/python2.7/site-packages/wooey/backend/utils.py", line 72, in get_job_commands
subproc_dict = param.get_subprocess_value()
File "/usr/lib/python2.7/site-packages/wooey/models/core.py", line 333, in get_subprocess_value
value = self.value
File "/usr/lib/python2.7/site-packages/wooey/models/core.py", line 405, in value
raise IOError
IOError
我已确保授予服务器写入所有正确输出目录的权限,并将所有这些目录的权限设置为 777,但这无济于事。 由于脚本通过本地托管站点运行,我认为这是某种权限问题。
任何和所有建议表示赞赏。 谢谢!
【问题讨论】:
-
第 405 行中的
raise IOError掩盖了真正的错误。你能把lib中的那一行改成raise,看看traceback是否改变了。 -
谢谢,这确实帮了大忙!
-
请添加问题的解决方案作为自己的答案!
-
会的!目前已经习惯使用 Stackoverflow!
标签: python linux django apache