python - 使用 nix 正确设置全局 python 环境

标签 python macos nix nixos

通过在我的 Mac 上使用 nix 而不是 brew,我逐渐熟悉了它。到目前为止我非常喜欢它,但是 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 环境?

最佳答案

我想遵循有据可查的非常方便的方法对您的情况也有帮助。

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 的方法。

关于python - 使用 nix 正确设置全局 python 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56329631/

相关文章:

windows - Golang 中的跨平台日志记录

haskell - 如何使用 haskell 堆栈创建一个 nix 包

python-3.x - Nix openai python 开发环境构建失败

Python - 读写结构化二进制文件

macos - 在 Mac OS X 上设置 ANDROID_HOME 环境变量

c++ - 如何在没有 Objective-C 的情况下创建 NSAutoreleasePool?

nix - 如何从源代码构建 Nix 包?

python - 将对象添加到 SQLAlchemy 关联对象时出现 KeyError

python直方图opencv计算每种颜色

python - 如何测试 python 私有(private)方法(是的,我确实有理由测试它们)