Ошибка ткани Python
-
27-09-2019 - |
Вопрос
Я управляю тканью (развертывание Django в Apache), и все, кажется, работает нормально, пока не доберусь до задачи для установки сайта:
def install_site():
"Add the virtualhost file to apache"
require('release', provided_by=[deploy, setup])
sudo('cd %(path)/releases/%(release)/%(release); cp %(project_name)/%(virtualhost_path)/%(project_domain) /etc/apache2/sites-available/%(project_domain)s')
sudo('cd /etc/apache2/sites-available; a2ensite %(project_domain)')
Я продолжаю получать эту ошибку:
[173.203.124.16] sudo: cd %(path)/releases/%(release)/%(release);
[173.203.124.16] err: /bin/bash: -c: line 0: syntax error near unexpected token
`('
[173.203.124.16] err: /bin/bash: -c: line 0: `cd %(path)/releases/%(release)/%(r
elease);'
Warning: sudo() encountered an error (return code 2) while executing 'cd %(path)
/releases/%(release)/%(release);'
Я прошел через Fabfile.py снова и снова, и я не вижу, почему придет ошибка ... любые идеи?
Решение
def install_site():
"Add the virtualhost file to apache"
require('release', provided_by=[deploy, setup])
with cd('%(path)s/releases/%(release)s/%(release)s' % env):
sudo('cp %(project_name)s/%(virtualhost_path)s/%(project_domain)s '
'/etc/apache2/sites-available/%(project_domain)s' % env)
with cd('/etc/apache2/sites-available'):
sudo('a2ensite %(project_domain)s' % env)
Другие советы
Вы можете попробовать использовать CD Context Manager. Отказ У вас, вероятно, также возникли проблемы с вашим Струнная интерполяция.
def install_site():
# Add the virtualhost file to apache
require('release', provided_by=[deploy, setup])
with cd('%s/releases/%s/%s' % (path, release, release)):
sudo('cp %s/%s/%s /etc/apache2/sites-available/%s' % (project_name, virtualhost_path, project_domain, project_domain))
with cd('/etc/apache2/sites-available'):
sudo('a2ensite %s' % project_domain)
Проблема фиксирована, замечая что-то с помощью команды «HG Archive ..», Zips / Tars The Repo 2 уровня глубоко
local('hg archive --type=tgz %(release)s.tar.gz' % {'release': env.release})
Результаты в 20100418105144.tar.gz, который, когда вы открыты, структурированы так:
20100418105144.tar.gz.
/20100418105144
/ refo
Не связан с StackOverflow