Меня интересует надежная и надежная процедура сбора пакета python и зависимостей для библиотеки Psychopy в единую коллекцию или среду для создания автономной и удобной в сопровождении установки. Также было бы хорошо иметь некоторые общие рекомендации по рекомендуемому способу сделать это, поскольку поиск в Google Nixos и Python дает ряд подходов, некоторые из которых используют плохо документированные функции, например. myEnvFun
Psychopy — это пакет Python, используемый для психологических экспериментов. Он имеет несколько зависимостей, большинство из которых являются пакетами Python, но не все (например, AVbin) ; и большинство из них находятся в коллекции пакетов nixos, но не все (pyo и py-parallel).
Моя цель состояла бы в том, чтобы собрать все необходимые части вместе и иметь функционирующую среду психопсии с помощью одного запроса на установку. Я выяснил, как установить Психопи, но путь не очень хорош.
Например, если следующее сохраняется как ~/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
];
}
Можно запустить nix-env -f ~/pkg/ -iA psychopy
, и Psychopy будет установлен, но его будет нелегко использовать, потому что путь к библиотеке Psychopy не виден ни для общесистемной установки python2, ни даже для версии python, установленной как часть входных данных сборки.
Это приводит к следующим вопросам, которые, хотя они конкретно касаются психопии, более широко применимы к Python и Nixos.
- Рекомендуется ли устанавливать пакеты python, которые существуют в коллекциях выражений nixos (например, numpy и scipy), один раз как общесистемные или пользовательские пакеты или с каждой конкретной экспериментальной библиотекой?
- Если кто-то хочет объединить коллекцию python с более чем одной библиотекой за пределами канала выражения nixos (например,Psychopy, pyo и pyparallel), какова рекомендуемая процедура? И как это изменится, если потребуется какое-то программное обеспечение, отличное от Python, например. в этом случае AVbin (у которого на самом деле есть инструкции по установке, которые относятся к путям, которые, насколько я понимаю, не являются стандартными для Nixos, то есть /usr/lib)?
- Можно ли поделиться некоторыми обсуждениями обработки путей в Python с контекстом Nixos?