PYTHONPATH -bash: export: `myproject/tornado_main.py': 不是有效的标识符

0 投票
1 回答
683 浏览
提问于 2025-04-18 13:26

我正在尝试学习这个叫做django-tornado-demo的项目,地址在这里:https://github.com/bdarnell/django-tornado-demo。我需要运行一个可执行文件,下面是相关的代码:

#!/usr/bin/env python

# Run this with
# PYTHONPATH=. DJANGO_SETTINGS_MODULE=testsite.settings testsite/tornado_main.py
# Serves by default at
# http://localhost:8080/hello-tornado and
# http://localhost:8080/hello-django

from tornado.options import options, define, parse_command_line
import django.core.handlers.wsgi
import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.wsgi

define('port', type=int, default=8080)

class HelloHandler(tornado.web.RequestHandler):
  def get(self):
    self.write('Hello from tornado')

def main():
  parse_command_line()
  wsgi_app = tornado.wsgi.WSGIContainer(
    django.core.handlers.wsgi.WSGIHandler())
  tornado_app = tornado.web.Application(
    [
      ('/hello-tornado', HelloHandler),
      ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
      ])
  server = tornado.httpserver.HTTPServer(tornado_app)
  server.listen(options.port)
  tornado.ioloop.IOLoop.instance().start()

if __name__ == '__main__':
  main()

当我尝试设置Python的路径时,我输入了:

export PYTHONPATH=DJANGO_SETTINGS_MODULE=myproject.settings myproject/tornado_main.py

但是我得到了这个错误:

-bash: export: `myproject/tornado_main.py': not a valid identifier

请问我该如何用上面提到的PYTHONPATH来运行这个文件呢?谢谢!

1 个回答

0

不要使用 export,直接在命令行中按照写的方式运行就可以了:

PYTHONPATH=. DJANGO_SETTINGS_MODULE=testsite.settings testsite/tornado_main.py

这样会用修改过的环境变量来运行 tornado_main.py。你也可以这样做:

export PYTHONPATH=. 
export DJANGO_SETTINGS_MODULE=testsite.settings 
testsite/tornado_main.py

如果你希望对 PYTHONPATHDJANGO_SETTINGS_MODULE 的更改影响你从那个终端启动的所有进程。

补充:

dan@dantop2:~/code/django-tornado-demo$ ls
testsite
dan@dantop2:~/code/django-tornado-demo$ ls testsite/
__init__.py  manage.py  settings.py  tornado_main.py  urls.py  views.py
dan@dantop2:~/code/django-tornado-demo$ PYTHONPATH=. DJANGO_SETTINGS_MODULE=testsite.settings testsite/tornado_main.py
<server starts running>

撰写回答