我对将 Psychopy 库的 python 包和依赖项收集到单个集合或环境中以进行独立且可维护的安装的可靠且强大的过程感兴趣。同样,最好对推荐的方法提出一些一般性建议,因为谷歌搜索 Nixos 和 Python 会产生许多方法,其中一些使用记录不充分的函数,例如 myEnvFun
Psychopy 是一个用于心理学实验的 Python 包。它有几个依赖项,其中大部分是python包,但不是全部(例如AVbin);其中大部分都在 nixos 包集合中,但不是全部(pyo和py-parallel)。
我的目标是能够将所有需要的部分组合在一起,并通过一个安装请求拥有一个正常运行的心理环境。我已经想出了如何安装psychopy,但是路径不太好。
例如,如果以下内容另存为~/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,但它不会很容易使用,因为任何系统范围的 python2 安装,甚至作为构建输入的一部分安装的 python 版本都看不到psychopy库的路径。
这导致了以下问题,尽管它们是专门关于精神病学的,但它们更普遍地适用于 python 和 Nixos。
- 推荐的做法是将 nixos 表达式集合(例如 numpy 和 scipy)中存在的 python 包作为系统或用户范围的包或每个特定的实验库安装一次?
- 如果希望将 python 集合与 nixos 表达式通道之外的多个库捆绑在一起(例如,psychopy 和 pyo 和 pyparallel),推荐的程序是什么?如果需要一些非 python 软件,这将如何改变,例如在这种情况下是 AVbin(它实际上有安装说明,根据我的理解,它引用了 Nixos 中不标准的路径,即 /usr/lib)?
- 可以分享一些关于在 Nixos 上下文中处理 Python 路径的讨论吗?