Python の起動時に、指定されたモジュールやその他のコードを自動的にロードする方法として、PYTHONSTARTUP ファイルについて聞いたことがあります。しかし、PYTHONSTARTUP は、python のすべてのインスタンスに対してグローバルなものです。特定のディレクトリに配置でき、そのディレクトリでpythonを起動したときにのみ実行されるPYTHONSTARTUPのようなものはありますか?
4 に答える
これはあなたが使いたいようですねvirtualenv
。これは、個別の設定用のフックを備えた分離された Python 環境を作成するためのツールです。それらをbin/activate
virtualenv の に入れるだけです。
PYTHONSTARTUP
各プロジェクトを開始する前に、環境変数をエクスポートするだけです。
export PYTHONSTARTUP=$HOME/myproject/.pystartup
python ~/myproject/start.py
export PYTHONSTARTUP=$HOME/myotherproject/.pystartup
python ~/myotherproject/start.py
または、実行する環境と python コマンドを含む単純な bash ファイルを用意することもできます。
#!/bin/sh
# filename: workon.sh
export PYTHONSTARTUP=$HOME/myproject/.pystartup
python ~/myproject/start.py
それで:
./workon.sh
環境変数と同様PYTHONSTARTUP
に、インスタンスごとに設定できます。
sh 互換のシェルでは、単一のプロセスの期間に変数を設定できます。
PYTHONSTARTUP=/home/you/special.py python arguments ...
すべての Python インスタンスに対して永続的に設定するには、次のようにします。
PYTHONSTARTUP=/home/you/regular.py
export PYTHONSTARTUP
シェルの起動ファイルに.
現在のシェルのグローバル デフォルトをオーバーライドできます。
bash$ PYTHONSTARTUP=/home/you/another.py
(export PYTHONSTARTUP
まだエクスポートされていない場合) または最初の例のように個々のプロセスに対して。
Windows と Csh 互換シェルでは、構文の詳細は異なりますが、概念はおおむね同じです。
現在の作業ディレクトリに応じてのみ実行される python startup-file にコードを追加できます。
以下のスニペットを に追加すると、.python
Python が から開始された場合に hello が出力され/home/myuser/mydir
ます。
import os
if os.getcwd()=="/home/myuser/mydir":
print "hello"