シェルサブコマンドは、対話型の Python インタープリターを呼び出すだけなので、必要なインポートを含むファイルをPYTHONSTARTUP UNIX 環境変数で指定するだけで機能します。シーケンスは次のとおりです。
user@linux$ export PYTHONSTARTUP='/path/to/my/django/pythonStartup.py'; python ./manage.py shell
pythonStartup.pyには任意の名前が付けられ、 s.pyを含め、好きな名前を付けることができます(ただし、これはおそらく最適な名前ではありません)。=:)
個人用の.bash_profileで、次の便利なエイリアスを作成することもできます。
alias django-shell="export PYTHONSTARTUP='/path/to/my/django/pythonStartup.py'; python ./manage.py shell"
そして、単にそれを使用します:
user@linux$ . ${HOME}/.bash_profile # Normally you don't need to do this step.
user@linux$ django-shell
これで、 pythonStartup.pyファイルを編集して、必要な変更をインポート動作に組み込み、エイリアスを実行するだけで済みます (... .bash_profileを編集または再ソースする必要はありません)。
PYTHONSTARTUP 環境変数がインポート元のファイルを適切に指している状態でpython3 ./manage.py シェルを実行すると、次のようになります。
user@linux$ python3 ./manage.py shell
Python 3.5.1 |Anaconda custom (64-bit)| (default, Dec 7 2015, 11:16:01)
Type "copyright", "credits" or "license" for more information.
IPython 4.2.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
Importing base set of modules often used ...
import sys, os, random, pprint, operator
import time, math
import numpy, numpy as np
import numpy.linalg
import scipy, scipy as spimport scipy.optimize
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
import pandas as pd
import sklearn.datasets
import sklearn.feature_extraction
import sklearn.linear_model
import sklearn.neighbors
import sklearn.cluster
import sklearn.preprocessing
import sklearn.decomposition
import gensim.models.word2vec
In [1]:
編集:
私が言及するのを忘れていた追加のヒント。
Django プロジェクトのルート ディレクトリにpythonStartup.pyを配置する場合は、次のようにエイリアスを作成します。
alias django-shell="export PYTHONSTARTUP='./pythonStartup.py'; python ./manage.py shell"
現在作業中の Django プロジェクトのルート ディレクトリにcdで移動でき、エイリアスはその特定のプロジェクトのpythonStartup.pyを呼び出します。このアプローチにより、柔軟性が高まります。