2

Cygwin 環境で Python を使用して、データ処理スクリプトと Python パッケージを開発しています。これらのスクリプトが依存するパッケージを更新しながら、スクリプトを積極的に使用したいと考えています。私の質問は、モジュールのロード パスを管理して開発の変更を分離してテストするが、運用スクリプトの動作には影響を与えないためのベスト プラクティス、推奨事項は何かということです。

Python は次の順序でモジュールをインポートします (M. Lutz のLearning Pythonを参照)

  1. ホーム ディレクトリ。
  2. PYTHONPATHディレクトリ。
  3. 標準ライブラリ ディレクトリ。
  4. 任意の*.pthファイルの内容。

私の現在の解決策は、パッケージをローカル (ではなく/usr/lib/python2.x/ )ディレクトリにインストールし、グローバル ディレクトリにファイルsite-packagesを追加して、これらがデフォルトで読み込まれるようにすることです。次に、開発ディレクトリで、ローカルの変更に積極的に取り組んでいるパッケージをロードするように変更します。 *.pthsite-packagesPYTHONPATH

この状況を処理するより標準的な方法はありますか? virtualenvモジュールのロードパスを操作する方法またはその他の方法を設定しますか?

4

1 に答える 1

1

これは私の意見ですが、この場合はおそらく virtualenvs と Makefiles/scripts の組み合わせを使用します。特定のユースケースでは行っていませんが、プロジェクトに複数の virtualenv を設定し、それぞれ異なる python バージョンを使用することがよくあります。次に、Makefile を使用して、1 つまたはすべての virtualenv でコードまたはテストを実行できます。make devel開発環境とmake production本番環境で実行するために入力できるメイクファイルをセットアップするのはそれほど難しくないようです。

または、git ブランチを使用してこれを行うこともできます。運用スクリプトをそのままにしてmaster、機能ブランチを使用して変更を分離およびテストしながら、運用スクリプトをすぐに利用できるようにgit checkout masterします。

于 2013-05-29T15:25:30.047 に答える