0
我想從包中的另一個模塊啓動django開發服務器。我的模塊可以導入manage.py,並且我希望執行manage.py runserver
的等效命令,而不使用子進程或其他任何類型(爲什麼?請參見下文)。Django開發服務器是否可以以編程方式啓動?
目前我能想出的最好的解決方案是使用子:
def run_with_default_settings():
import inspect
import subprocess
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
subprocess.Popen(['python', 'manage.py', 'runserver'], cwd=currentdir)
但是這種解決方案在我看來相當過於複雜,而且更重要的是它不是獨立於平臺(例如,如果某人有python 2和python 3以及python
都被定義爲python 3;或者如果python
未在環境PATH中定義...等)。
我在網上找不到任何解決方案,並且我試圖運行execute_from_command_line()
的每種方式都失敗了。
任何想法?
不幸的是這僅適用,至少在我的情況下,如果導入模塊在同一個目錄中'manage.py'駐留。否則,所有django導入都會失敗: 「File」C:\ Python27 \ lib \ importlib \ __ init__.py「,第37行,位於import_module __import __(名稱) ImportError:沒有名爲fitter.apps的模塊 –