使用Virtualenv、Circus和Chauss部署Django

2024-10-01 17:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用Virtualenv,Circus和Chaussette运行Django,在CentOS 7的虚拟主机中运行,但是当我运行Circulad时,我总是遇到这个错误马戏团.ini

(djenv)[root@localhost django]# circusd circus.ini
2014-09-01 22:06:38 circus[2406] [INFO] Starting master on pid 2406
2014-09-01 22:06:38 circus[2406] [INFO] sockets started
2014-09-01 22:06:38 circus[2406] [WARNING] error in 'settings': [Errno 2] No such file or directory: '~/.virtualenv/djenv/bin/chaussette'
2014-09-01 22:06:38 circus[2406] [WARNING] error in 'settings': [Errno 2] No such file or directory: '~/.virtualenv/djenv/bin/chaussette'
2014-09-01 22:06:38 circus[2406] [WARNING] error in 'settings': [Errno 2] No such file or directory: '~/.virtualenv/djenv/bin/chaussette'
2014-09-01 22:06:38 circus[2406] [WARNING] error in 'settings': [Errno 2] No such file or directory: '~/.virtualenv/djenv/bin/chaussette'
2014-09-01 22:06:38 circus[2406] [WARNING] error in 'settings': [Errno 2] No such file or directory: '~/.virtualenv/djenv/bin/chaussette'
2014-09-01 22:06:38 circus[2406] [INFO] settings stopped
2014-09-01 22:06:38 circus[2406] [INFO] Arbiter now waiting for commands
2014-09-01 22:06:38 circus[2406] [INFO] circusd-stats started
2014-09-01 22:06:38 circus[2415] [INFO] Starting the stats streamer

# Here i close circusd with ctrl+c

2014-09-01 22:19:40 circus[2406] [INFO] Got signal SIG_INT
2014-09-01 22:19:40 circus[2406] [INFO] Arbiter exiting
2014-09-01 22:19:41 circus[2406] [INFO] circusd-stats stopped
Exception ignored in: <module 'threading' from '/usr/local/lib/python3.4/threading.py'>
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/threading.py", line 1294, in _shutdown
    t.join()
  File "/usr/local/lib/python3.4/threading.py", line 1057, in join
    raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread

我的django项目的路径是/opt/webapps/django/。这是该路径的结构:

(仅供参考:设置是我给django项目起的名字)

^{pr2}$

我的虚拟化路径是:~/.virtualenv/djev/。这是该路径的结构(bin):

/djenv/
/djenv/bin/
/djenv/bin/circusd
/djenv/bin/chaussette
/djenv/bin/circushttpd
/djenv/bin/python3.4
/djenv/bin/pip

我的马戏团.ini是:

[circus]
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
stats_endpoint = tcp://127.0.0.1:5557

[watcher:settings]
cmd = ~/.virtualenv/djenv/bin/chaussette django:/opt/webapps/django --fd $(circus.sockets.settings)$ --django-settings settings.settings
use_sockets = True
numprocesses = 3

[socket:settings]
host = 0.0.0.0
port = 8080

Tags: djangonoininfobinsettingsvirtualenverror
2条回答

所以我终于找到了解决办法。这是我所做的。在

首先我改变了我的马戏团.ini为此:

[circus]
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
stats_endpoint = tcp://127.0.0.1:5557

[watcher:settings]
cmd = /root/.virtualenvs/djenv/bin/chaussette settings.wsgi.application
args =  fd $(circus.sockets.settings)
use_sockets = True
numprocesses = 3
copy_env = True
virtualenv = /root/.virtualenvs/djenv/

[socket:settings]
host = 0.0.0.0
port = 8080

因为我用Python3.4.1运行这个circus,所以又遇到了一个错误:

^{pr2}$

为了寻找这个问题的解决方案,我找到了这个修复程序https://github.com/mozilla-services/circus/pull/800/files

其他人帮助了希望。在

此回复太晚了,但可能对其他人有用。现在使用python3.4和django1.9

这是我的马戏团/马戏团在

[circus]
check_delay = 5
include_dir = /etc/circus/conf.d
logoutput = /var/log/circus/system.log
statsd = True

[plugin:flapping]
use = circus.plugins.flapping.Flapping

还有我的项目/etc/circus/conf.d/项目.ini在

^{pr2}$

注意/path/to/logs/和/var/log/circus上的权限/系统日志. 目录应该存在。在

相关问题 更多 >

    热门问题