4

Python パッケージと Psychopy ライブラリの依存関係を単一のコレクションまたは環境に収集して、自己完結型で保守可能なインストールを作成するための信頼できる堅牢な手順に興味があります。同様に、Nixos と Python をグーグル検索すると多くのアプローチが得られるため、これを行うための推奨される方法についていくつかの一般的な推奨事項があるとよいでしょう。

Psychopy は、心理学の実験に使用される python パッケージです。いくつかの依存関係があり、そのほとんどは Python パッケージですが、すべてではありません (AVbin など)。そのほとんどは nixos パッケージ コレクションにありますが、すべてではありません ( pyoおよびpy -parallel )。

私の目標は、必要なすべての部品をまとめて、1 回のインストール要求でサイコピー環境が機能するようにすることです。サイコピーをインストールする方法を見つけましたが、パスがうまくいきません。

たとえば、次のように保存した場合~/pkg/psychopy/default.nix

let
  pkgs = import <nixpkgs> {};
in
{stdenv ? pkgs.stdenv, python ? pkgs.python, fetchurl ? pkgs.fetchurl}:

with pkgs;
buildPythonPackage {
  name = "psychopy";

  src = fetchurl {
    url = http://sourceforge.net/projects/psychpy/files/PsychoPy/PsychoPy-1.82.02.zip;
    md5 = "52309280bdca4408970aab0952c674e4";
  };

  buildInputs = [
    python27
  ];
} 

1 つを実行nix-env -f ~/pkg/ -iA psychopyして Psychopy をインストールすることはできますが、システム全体の python2 インストールや、ビルド入力の一部としてインストールされた python バージョンでさえ、psychopy ライブラリへのパスが表示されないため、簡単には使用できません。

これは、特にサイコピーに関するものですが、より一般的には python と Nixos に適用されるという次の質問につながります。

  1. nixos 式コレクション (numpy や scipy など) に存在する python パッケージを、システムまたはユーザー全体のパッケージとして、または特定の実験ライブラリごとに 1 回インストールすることをお勧めしますか?
  2. nixos 表現チャネルの外部にある複数のライブラリ (たとえば、psychopy と pyo と pyparallel) を持つ python コレクションを一緒にバンドルしたい場合、推奨される手順は何ですか? そして、Python 以外のソフトウェアが必要な場合、たとえばこの場合 AVbin (実際には、Nixos では標準ではないパス、つまり /usr/lib を参照するインストール手順があります) が必要な場合、これはどのように変化しますか?
  3. Nixos のコンテキストで Python でパスを処理することについての議論を共有できますか?
4

1 に答える 1