2011-06-16 129 views
5

我想从一个bash脚本运行“蟒蛇manage.py runserver命令”从bash脚本

首先,如果我想从一个终端“的python manage.py runserver命令&都跑“蟒蛇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') 
+1

为什么哦为什么哦为什么不使用正常的部署机制... – 2011-06-16 08:28:50

+0

我想从Hudson中的作业(添加构建步骤 - > Execute shell)运行此命令。服务器启动后,运行nosetests – 2011-06-16 08:33:02

+1

这是做错的方法。单元测试 - 包括鼻子 - 应该使用代码中的内置测试服务器和客户端,而不是访问实际的开发服务器。 – 2011-06-16 08:50:10

回答

6

之前,这个问题可能是哈德逊不运行作为用户...你可以运行

source /home/your_user/.bashrc && django_serve 

,使其运行该别名,但我想你可能需要切换用户

- 或 -

有哈德森从它自己的源

编辑的结账运行开发服务器:在您的埃罗看,虽然,我认为这可以解决您的问题:

,而不是

python manage.py runserver 

尝试添加--noreload标志以禁用自动重新加载器

python manage.py runserver --noreload 
+0

我已经完成了以下工作:1.添加.bash_aliases别名django_server ='python manage.py runserver --noreload&''(没有'--noreload'选项我得到上面描述的初始错误)2.复制〜/ .bash_aliases/var/lib/hudson。 3.在Hudson工作中(添加构建步骤 - > Execute shell)添加'。/var/lib/hudson/.bash_aliases'和'django_server'。服务器在后台运行,Selenium测试正在使用nosetests运行。感谢您的答案。 – 2011-06-17 08:55:24

0

我使用别名来启动django服务器。可能会有帮助)

只需在您的~/.bashrc~/.profile的末尾加上alias django_serve="python manage.py runserver &"即可。

还创建.bash_aliases,把你的别名到这个文件并执行它,你做任何操作,如

 

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

我在'〜/ .bashrc'中添加了'alias django_server =“python manage.py runserver&''并运行'source〜/ .bashrc'。我从终端运行命令'django_server'并且工作正常。然后我做了一个包含'django_server'的bash脚本,但是它告诉我'command not found'。 – 2011-06-16 15:06:40