我有一個Django應用程序在其中一個應用程序中具有自定義管理命令。如果我通過SSH登錄,我可以不與通過SSH運行自定義Django管理命令
蟒蛇manage.py sitedir任何問題,但是運行/ mycommand的
,如果我嘗試從我喜歡的本地框運行命令爲oneliner這樣的:
SSH MYSERVER蟒蛇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單線程運行它時,環境中是否有不同的東西? python路徑在兩種情況下似乎都是正確的。
我認爲你是在做某事。我設法通過shell腳本oneliner運行它,如下所示: cd $ PROJECTPATH && $ HOME/v/bin/python manage。py mycommand --settings = $ SETTINGS --pythonpath = $ HOME 這似乎是一個路徑相關的問題。當用戶沒有正確登錄時,環境似乎被搞砸了。感謝您花時間研究這一點。 – PeterK 2010-09-12 19:23:27