【问题标题】:Setup global python environment properly with nix使用 nix 正确设置全局 python 环境
【发布时间】:2019-10-13 05:45:26
【问题描述】:

我通过在我的 Mac 上使用它而不是 brew 来熟悉 nix。到目前为止我非常喜欢它,但是 python 环境存在问题。我不知道如何正确配置它。

我正在使用powerline status,它本身是一个 python 包,但也可作为派生 (nixpkgs.python37Packages.powerline)。因此,我将它与 python 和其他一些软件包一起安装:

# file: python.nix
with import <nixpkgs> {};
python3.withPackages (ps: with ps; [ pip pipenv powerline ipython ])

这是按预期工作的。

但是,我还为电力线使用了一些额外的段(例如powerline-gitstatus),它们不能作为派生。所以,我只是通过pip install --user ... 安装了它们。然后设置PYTHONPATH=$HOME/.local/lib/python3.7/site-packages

这也有效。

除此之外,我还需要 awscli,它是一个 python 包,可作为独立派生(不是 nixpkgs.python37Packages.awscli),所以我不能将它安装为我的自定义 python 派生的一部分,至于我明白了。

我尝试使用nix-env -i awscli 获取它,但它无法与 set PYTHONPATH 一起使用。

我尝试使用pip install --user awscli 获取它,但它也不起作用。

在这两种情况下,它都因为缺少依赖项或版本不兼容而崩溃。

那么,我的问题是:如何使用 nix 正确设置全局 python 环境?

【问题讨论】:

  • 致版主:我怀疑这个问题属于SO或ServerFault,如果需要我会移动它。
  • 这个问题不是很清楚,问题比较模糊。如果您遇到任何错误,包含这些错误将会很有用。

标签: python macos nix nixos


【解决方案1】:

我想遵循有据可查的非常方便的方法也可以帮助您解决问题。

How to consume python modules using pip in a virtualenv like I am used to on other Operating Systems ?

10.09.2020 更新:
Developing Python with Poetry & Poetry2nix: Reproducible flexible Python environments 描述了另一种在 NixOS 上使用 python 的方法。

【讨论】:

  • 谢谢,我去看看。到目前为止,我设法用 pypi2nix 做了一些必要的事情,但仍然不是很方便。
  • pypi2nix 是一个为 Python 包生成 Nix 表达式的工具。虽然在nix-shell 内部使用pip 是在NixOS 上设置python 环境的一种方便且更强大的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2020-02-15
  • 2021-09-29
相关资源
最近更新 更多