1

Python の起動時に、指定されたモジュールやその他のコードを自動的にロードする方法として、PYTHONSTARTUP ファイルについて聞いたことがあります。しかし、PYTHONSTARTUP は、python のすべてのインスタンスに対してグローバルなものです。特定のディレクトリに配置でき、そのディレクトリでpythonを起動したときにのみ実行されるPYTHONSTARTUPのようなものはありますか?

4

4 に答える 4

2

これはあなたが使いたいようですねvirtualenv。これは、個別の設定用のフックを備えた分離された Python 環境を作成するためのツールです。それらをbin/activatevirtualenv の に入れるだけです。

于 2013-10-23T06:55:30.203 に答える
1

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
于 2013-10-23T06:24:03.223 に答える
0

環境変数と同様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 互換シェルでは、構文の詳細は異なりますが、概念はおおむね同じです。

于 2013-10-23T06:25:53.037 に答える
0

現在の作業ディレクトリに応じてのみ実行される python startup-file にコードを追加できます。

以下のスニペットを に追加すると、.pythonPython が から開始された場合に hello が出力され/home/myuser/mydirます。

import os

if os.getcwd()=="/home/myuser/mydir":
     print "hello"
于 2013-10-23T06:27:15.987 に答える