“运行”;python manage.py runserver“;来自bash脚本

“运行”;python manage.py runserver“;来自bash脚本,python,django,bash,selenium,hudson,Python,Django,Bash,Selenium,Hudson,我想从bash脚本运行“python manage.py runserver” 首先,如果我想从终端“python manage.py runserver&”运行,但它不起作用。我找到了解决这个问题的方法(https://code.djangoproject.com/changeset/16327). 在运行“python manage.py runserver&”的终端中手动运行效果良好。 我在bash脚本中添加了“python manage.py runserver&”,但它不会启动服务器

我想从bash脚本运行“python manage.py runserver”

首先,如果我想从终端“python manage.py runserver&”运行,但它不起作用。我找到了解决这个问题的方法(https://code.djangoproject.com/changeset/16327). 在运行“python manage.py runserver&”的终端中手动运行效果良好。 我在bash脚本中添加了“python manage.py runserver&”,但它不会启动服务器

Error:
File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 137, in main
    reloader(main_func, args, kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 110, in python_reloader
    reloader_thread()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 89, in reloader_thread
    ensure_echo_on()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 77, in ensure_echo_on
    attr_list = termios.tcgetattr(fd)
termios.error: (25, 'Inappropriate ioctl for device')

我使用alias启动django服务器。可能是(我能帮忙)

只需在
~/.bashrc
~/.profile
的末尾添加
别名django\u serve=“python manage.py runserver&”

此外,您还可以创建
.bash\u别名
,并将别名放入此文件中,并在执行任何类似操作之前执行它


if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

问题可能是hudson没有以您的用户身份运行。。。你可以跑

source /home/your_user/.bashrc && django_serve 
要让它运行该别名,但我认为您可能需要切换用户

--或--

让hudson从自己的源代码签出运行dev服务器

编辑:但看看你的错误,我认为这可能会解决你的问题:

而不是

python manage.py runserver
尝试添加
--noreload
标志以禁用自动重新加载程序

python manage.py runserver --noreload

为什么不使用普通的部署机制…我想从Hudson中的作业中运行这个命令(添加构建步骤->执行shell)。服务器启动后,运行nosetests,这是错误的方法。单元测试(包括nose)应使用代码中的内置测试服务器和客户端,而不是访问实际的开发服务器。@Daniel我的目标是拥有一个Hudson作业,该作业正在执行以下操作:从SVN更新源代码,启动selenium server jar,运行服务器“python manage.py runserver”(这是我的问题),使用命令nosetests运行Selenium自动测试——使用xunit--xunit file=nosetests。xmlI在
~/.bashrc
中添加了
别名django\u server=“python manage.py runserver&”
,并运行
源代码~/.bashrc
。我从终端运行命令
django_server
,工作正常。然后我编写了一个bash脚本,其中包含
django\u服务器
,但它告诉我
未找到命令
。add-in.bash_alias
alias django_server='python manage.py runserver--noreload&'
(如果没有
--noreload
选项,则会出现上述初始错误)2。复制~/.bash_别名/var/lib/hudson。3.在Hudson作业(添加构建步骤->执行shell)中添加
/var/lib/hudson/.bash\u别名
django\u服务器
。服务器正在后台运行,Selenium测试正在使用nosetests运行。谢谢你的回答。