【问题标题】:PYTHONPATH -bash: export: `myproject/tornado_main.py': not a valid identifierPYTHONPATH -bash:导出:`myproject/tornado_main.py':不是有效的标识符
【发布时间】:2014-07-15 18:14:22
【问题描述】:

我正在尝试向https://github.com/bdarnell/django-tornado-demo 的 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 路径导出时:

导出 PYTHONPATH=DJANGO_SETTINGS_MODULE=myproject.settings 我的项目/tornado_main.py

我明白了:

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

如何使用顶部建议的 PYTHONPATH 运行此文件?谢谢

【问题讨论】:

  • 你更仔细地阅读了上面列出的那一行,并按照它所说的去做,而不是你从你认为它所说的东西拼凑而成的东西。 (即那一行是逐字你需要的。)

标签: python django bash


【解决方案1】:

不要使用export,直接从 CLI 中运行即可:

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>

【讨论】:

  • @Eddie 你是从testsite 上面的目录运行它吗? tornado_main.py 是否可执行?
  • tornado_main.py 是我在上面的问题中包含的示例代码。它是一个可执行文件。
  • @Eddie 当我 git clone 那个 repo,cddjango-tornado-demo,并运行 PYTHONPATH=. DJANGO_SETTINGS_MODULE=testsite.settings testsite/tornado_main.py,服务器启动,就像它应该的那样。请参阅我的答案中的编辑。
  • 我想我的障碍是我正在尝试将它与我刚刚制作的应用程序集成。所以我必须集成我的应用程序。我会试试你的编辑
猜你喜欢
  • 2015-01-22
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
相关资源
最近更新 更多