これをインストールしようとしていますPythonライブラリpython3.6-geopandas-0.3.0
。そして、命令型で正常にインストールしました。
$ nix-env -iA nixpkgs.python3Packages.geopandas
ただし、Python環境に含まれるように式を作成する必要があります。
with import <nixpkgs> {};
python36.withPackages (ps: with ps; [
geopandas
])
私が得ることが判明
installing ‘python3-3.6.4-env’
error: undefined variable ‘geopandas’
システムにnixos
とnixpkgs-unstable
の両方が構成されています。しかし、正しくかどうかはわかりません。ルート用のチャネルnixos
と、ユーザー用のnixpkgs
があります。
$ echo $NIX_PATH
nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
nixpkgs-unstable
をユーザーのデフォルトチャネルにするか、少なくともそのパッケージをオーバーレイとして表示して、上記の式を正常に実行できるようにします。
あなたの表現は、現在のnixpkgsマスターで機能します。私はあなたのNIX_PATH
古いものを取っていません<nixpkgs>
あなたが予期していなかったこと、例えばgeopandas
は17.09安定版ブランチには存在しません。
これをNixOSで再現することができました。
NIX_PATH
はnixpkgs
を/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs
に設定します。これは、検索すると/nix/var/nix/profiles/per-user/root/channels/nixos/
への単なるシンボリックリンクです。 <nixpkgs>
が有効なチャネルパスを指すことを期待する、実際に存在するすべての式を機能させるのはおそらく少しハックです(ただし、これはnixシステムの要件ではなく、 nix-daemon )。
これを修正するには、実際のnixpkgsチャネルを指すようにNIX_PATH
を再定義するか、式で<nixpkgs>
を使用する代わりに、チャネルへのパスを明示的に指定する必要があります。
利用可能なチャンネルは~/.nix-defexpr
で見つけることができます。
$tree -l -L 2 ~/.nix-defexpr/
/home/user1/.nix-defexpr/
├── channels -> /nix/var/nix/profiles/per-user/user1/channels
│ ├── ...
│ └── nixpkgs -> /nix/store/qz1.../nixpkgs
└── channels_root -> /nix/var/nix/profiles/per-user/root/channels
├── ...
└── nixos -> /nix/store/53b.../nixos
(channels
にはユーザー固有のチャネルが含まれ、channels_root
にはrootがサブスクライブし、すべてのユーザーが使用できるチャネルが含まれます)
したがって、user1のサブスクリプションをnixpkgs
に使用することにした場合は、次のコマンドを実行します。
NIX_PATH="nixpkgs=/home/user1/.nix-defexpr/channels/nixpkgs" nix-env -f default.nix -i