Why does it try to use wallet instead of ledger?

Why does it try to use wallet? I want it to deploy using Ledger instead.

$ dfx deploy --network ic -v
Found keyring identity suffix - PEM file is stored in keyring.
Build order: battery CanDBIndex CanDBPartition NacDBIndex NacDBPartition call main frontend ic_eth items pst payments personhood users
Deploying all canisters.
Creating canisters...
Creating canister battery...
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to register all canisters.
Caused by: Failed to create canister 'battery'.
Caused by: No wallet configured for combination of identity 'Zon' and network 'ic'
$ dfx deploy --network ic -v --no-wallet
Found keyring identity suffix - PEM file is stored in keyring.
Build order: battery CanDBIndex CanDBPartition NacDBIndex NacDBPartition call main frontend ic_eth items pst payments personhood users
Deploying all canisters.
Creating canisters...
Creating canister battery...
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to register all canisters.
Caused by: Failed to create canister 'battery'.
Caused by: In order to create a canister on this network, you must use a wallet in order to allocate cycles to the new canister. To do this, remove the --no-wallet argument and try again. It is also possible to create a canister on this network using `dfx ledger create-canister`, but doing so will not associate the created canister with any of the canisters in your project.

I did set DFX_CYCLES_LEDGER_SUPPORT_ENABLE=1 in .env. This does not help.

export DFX_CYCLES_LEDGER_SUPPORT_ENABLE=1 is the way to go, either in the terminal or in a dotfile. dfx does not read this variable from .env