私は自分のデータベースを移植するために実行するpythonスクリプトを持っています。私は通常、必要な依存関係のためにshell_plusの中でスクリプトを実行します。 shell_plusにスクリプトをロードして、実際にshell_plusインターフェースを開くことなく、私のlinuxコマンドラインからすべてを実行する方法はありますか?コマンドラインからshell_plusを使ってpythonスクリプトを実行しています
4
A
答えて
2
2
賭けてください!
shell_plusの使用をおすすめしません。私は自分のユーティリティのスクリプトを自分のappユーティリティーフォルダに保存する傾向があります。それから私は単にcronの仕事から、または必要に応じて手動で呼びます。ここに私がこれをベースにしているフレームワークスクリプトがあります。 (やや簡略化)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import logging
import time
import time
import optparse
# DO NOT IMPORT DJANGO MODELS HERE - THIS NEED TO HAPPEN BELOW!!
# This needs to be able to be run when django isn't in the picture (cron) so we need
# to be able to add in the django paths when needed.
def getArgs():
"""
Simply get the options for running update people.
"""
p = optparse.OptionParser()
help = "The Python path to a settings module, e.g. "
help += "\"myproject.settings.main\". If this isn't provided, the "
help += "DJANGO_SETTINGS_MODULE environment variable will be used."
p.add_option("-s", "--settings", action = "store", type = "string",
dest = "settings", help = help)
help = "A directory to add to the Python path, e.g."
help += " \"/home/djangoprojects/myproject\"."
p.add_option("-y", "--pythonpath", action = "store", type = "string",
dest = "pythonpath", help = help)
p.add_option("-v", "--verbose", action = "count", dest = "verbose",
help = "Turn on verbose debugging")
p.set_defaults(settings = os.environ.get("DJANGO_SETTINGS_MODULE",
"settings"),
pythonpath = "", verbose = 0,
)
return p.parse_args()
def update(opt, loglevel=None):
"""
This is the main script used for updating people
"""
start = time.time()
# This ensures that our sys.path is ready.
for path in opt.pythonpath.split(":"):
if os.path.abspath(path) not in sys.path and os.path.isdir(path):
sys.path.append(os.path.abspath(path))
os.environ['DJANGO_SETTINGS_MODULE'] = opt.settings
from django.conf import settings
try:
if settings.SITE_ROOT not in sys.path: pass
except ImportError:
return("Your setting file cannot be imported - not in sys.path??")
# IMPORT YOUR CODE MODELS HERE
from apps.core.utility.ExampleExtractor import ExampleExtractor
# YOUR DJANGO STUFF GOES HERE..
example = ExampleExtractor(loglevel=loglevel, singleton=not(opt.multiple))
raw = example.get_raw()
results = example.update_django(raw)
log.info("Time to update %s entries : %s" % (len(results), time.time() - start))
return results
if __name__ == '__main__':
logging.basicConfig(format = "%(asctime)s %(levelname)-8s %(module)s \
%(funcName)s %(message)s", datefmt = "%H:%M:%S", stream = sys.stderr)
log = logging.getLogger("")
log.setLevel(logging.DEBUG)
opts, args = getArgs()
sys.exit(update(opts))
HTH!
+0
私はちょうどこのスクリプトを使用して、それは素晴らしいです。私はDjangoを1年間プログラミングしてきましたが、コマンドラインレベルで最初に遊んだことはありませんでした。私のサイトはほぼ準備ができており、Pythonのcronジョブが必要です。私はこのスクリプトを使用して、実際にうまく走っています。おかげでrh0dium – Rich
関連する問題
- 1. コマンドラインを使ってpythonスクリプトを実行する利点は何ですか?
- 2. コマンドラインでpythonスクリプトを使ってsbtを実行し、ファイルに出力する
- 3. コマンドラインを使用して本からphpスクリプトを実行
- 4. Google AppsスクリプトからPythonスクリプトを実行しています
- 5. X11を使ってBeagleBoneからGUI Pythonスクリプトを実行する
- 6. pythonのサブプロセスモジュールを使ってコマンドライン入力でluaスクリプトを実行する
- 7. コマンドラインからPHPスクリプトを実行しているときのエントリポイントエラー
- 8. コマンドラインからのGroovyスクリプトを実行している
- 9. Pythonスクリプトから.shファイルを実行していますか?
- 10. ubuntuのコマンドラインから起動アプリケーションとしてpythonスクリプトを実行する方法
- 11. コマンドラインからバックグラウンドプロセスとしてPHPスクリプトを実行する
- 12. PHPコントローラからPythonスクリプトを実行しています
- 13. sqliteスクリプトがコマンドラインから実行されていません
- 14. Pythonはコマンドラインから実行されていませんが、anacondaシェルから実行しています
- 15. コマンドラインからSQLスクリプトを実行する
- 16. Pythonスクリプトはインタプリタで実行されますが、コマンドラインから
- 17. コマンドラインからパスワードを使用してMYSQLスクリプトを実行する方法は?
- 18. WindowsのコマンドラインからPythonスクリプトを実行する
- 19. pydevからbumblebeeを通してpythonスクリプトを実行しています
- 20. コマンドラインからシングル* .csスクリプトを実行
- 21. は、私はbashスクリプトからPythonスクリプトを実行していますbashの
- 22. Pythonスクリプト内でコマンドラインを実行
- 23. Pythonスクリプトからスーパーユーザーとしてコマンドを実行しています
- 24. Python、unittest、コマンドライン引数を使ってスクリプトをテストする
- 25. プログラム名のみを使用してコマンドラインからPythonプログラムを実行する
- 26. サブプロセスモジュール(Windows)を使用してPythonからコマンドライン命令を実行する(Windows)
- 27. コマンドラインでヘッダコマンドを使用してPHPスクリプトを実行
- 28. JavascriptからXML URLを使ってFMスクリプトを実行する
- 29. テキストファイルからbashスクリプトを使ってコマンドを実行する
- 30. bashスクリプトからファイルpather argsを使ってrubyスクリプトを実行しています
$ DJANGO_SETTINGS_MODULE = myproject.settings PYTHONPATH = $ HOME/djangoprojects python myscript.pyを実行しようとしましたが、まだモデルクラスが見つからないようです。私は行方不明のものがありますか? – prostock