我需要从Django shell中执行一个Python脚本。我试着:

./manage.py shell << my_script.py

但这并没有起作用。它只是在等我写点什么。


当前回答

<<部分是错误的,用<代替:

$ ./manage.py shell < myscript.py

你还可以:

$ ./manage.py shell
...
>>> execfile('myscript.py')

对于python3,您需要使用

>>> exec(open('myscript.py').read())

其他回答

注意,这个方法在django的最新版本中已经被弃用了!(> 1.3)

另一个答案是,您可以将它添加到my_script.py的顶部

from django.core.management import setup_environ
import settings
setup_environ(settings)

然后用python在settings。py目录下执行my_script.py,但这有点棘手。

$ python my_script.py

我迟到了,但我希望我的回答能帮助到别人: 你可以在你的Python脚本中这样做:

import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings

你的其他东西在这里....

其实很简单,只要你打开django shell Python manage.py shell然后简单的写import test来导入test.py

# test.py
def x():
  print('hello');

现在您可以执行该文件中的命令

test.x() //  will print hello

首先检查你的文件。

py manage.py

如果显示您的文件

[contracts]
category_load

现在您可以通过输入powershell(terminal)来运行.py文件

py manage.py category_load

@AtulVarma在不工作的接受答案下提供了一个非常有用的评论:

echo 'import myscript' | python manage.py shell