Ткань дает мне EOFError, когда я пытаюсь использовать каталог. Это происходит только в том случае, если я запускаю подпроцесс из скрипта python, который работает непосредственно перед этим.EOFError при запуске подпроцесса с тканью
С моей fabfile:
...
with settings(warn_only=True):
run('python my_scripts/import_local.py')
sudo('chown www-data:www-data /opt/mm/my_project/uploads -R')
Если я комментируйте строки ниже из my_scripts/import_local.py
я не получаю сообщение об ошибке:
p = subprocess.Popen(command.split(), stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = p.communicate()[0].splitlines()
if result:
print result
С подпроцессом линией слева в я получаю эту отслеживающий (работаю с - -show = отладка):
[xx.xx.xxx.xxx] sudo: sudo -S -p 'sudo password:' /bin/bash -l -c "cd /opt/mm/my_project/current && source environment.sh && chown www-data:www-data /opt/mm/my_project/uploads -R"
Traceback (most recent call last):
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/main.py", line 682, in main
*args, **kwargs
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/tasks.py", line 232, in execute
task.run(*args, **new_kwargs)
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/tasks.py", line 105, in run
return self.wrapped(*args, **kwargs)
File "/Users/jesse.aldridge/Dropbox/my_code/my_project/fabfile.py", line 162, in do_reimport
sudo('chown www-data:www-data /opt/mm/my_project/uploads -R')
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/network.py", line 343, in host_prompting_wrapper
return func(*args, **kwargs)
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/operations.py", line 976, in sudo
user=user)
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/operations.py", line 867, in _run_command
combine_stderr)
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/fabric/operations.py", line 753, in _execute
channel.get_pty(width=cols, height=rows)
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/ssh/channel.py", line 158, in get_pty
self._wait_for_event()
File "/Users/jesse.aldridge/.virtualenvs/my_project/lib/python2.6/site-packages/ssh/channel.py", line 1084, in _wait_for_event
raise e
EOFError
Disconnecting from xx.xx.xxx.xxx... done.
выглядит как проблема с sudo. возможно, этому пользователю нужен пароль для запуска sudo? –
Когда я делаю sudo в другом месте сценария, ткань запрашивает меня для моего пароля. –
Что произойдет, если вы не используете подпроцессы PIPE? Или если вы помещаете немного «time.sleep» между строками вашего файла fabfile? –