在远程服务器上的端口80上启动龙卷风应用程序

时间:2015-07-23 17:20:35

标签: python amazon-ec2 flask virtualenv tornado

我有一个烧瓶应用程序包裹在龙卷风服务器中,当我收到此错误时,我试图在远程服务器上运行应用程序:

Traceback (most recent call last):
  File "run.py", line 7, in <module>
    server.listen(80)
  File "/home/ec2-user/gatekeeper/local/lib/python2.7/site-packages/tornado/tcpserver.py", line 126, in listen
    sockets = bind_sockets(port, address=address)
  File "/home/ec2-user/gatekeeper/local/lib/python2.7/site-packages/tornado/netutil.py", line 187, in bind_sockets
    sock.bind(sockaddr)
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 13] Permission denied

所以我尝试使用sudo,我得到了这个:

Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from tornado.wsgi import WSGIContainer
ImportError: No module named tornado.wsgi

所以我想知道我是否必须以龙头安装龙卷风,这反过来意味着我的virtualenv几乎没用。

1 个答案:

答案 0 :(得分:1)

你究竟是如何启动应用程序并与virtualenv进行交互的? Sudo删除了大多数环境变量,这将有效地停用任何“激活的”virtualenv。如果您使用source $ENV/bin/activate,则需要在sudo之后执行此操作。或者您可以通过运行virtualenv的python可执行文件activate来避免使用sudo $ENV/bin/python run.py