【发布时间】:2011-04-11 01:29:06
【问题描述】:
我在其中一个应用程序中有一个带有自定义管理命令的 Django 应用程序。如果我通过 SSH 登录,我可以毫无问题地运行它
python manage.py sitedir/mycommand
但是,如果我尝试像这样从本地框中以 oneliner 的形式运行该命令:
ssh myserver python manage.py sitedir/mycommand
我得到一个像这样的 ImportError:
Traceback (most recent call last):
File "mysite/manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 67, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named mysite.myapp.management.commands.mycommand
真正的原因是我想从 Fabric 脚本运行这个管理命令,但直到我可以通过 ssh 单线运行它之前,我想这是不可能的。当您通过 ssh one-liner 运行它时,环境中有什么不同吗?在这两种情况下,python 路径似乎都是正确的。
【问题讨论】: