pythoncondapyarrownightly-build

Is there a way to install pyarrow nightly builds with conda?


I'm trying to install pyarrow's nightly builds with conda using arrow-nightlies channel to experiment with the latests code in Github's master branch. Conda's version is 4.8.3. The target environment has python 3.8 on MacOS

When I run conda install I get the following error:

$ conda install -c arrow-nightlies pyarrow=0.16.1.dev446
[...]

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - pyarrow=0.16.1.dev446 -> python[version='>=2.7,<2.8.0a0|>=3.5,<3.6.0a0']

Your python: python=3.8
[...]

Despite the fact that there's a build for python 3.8:

# Name                       Version           Build  Channel     
pyarrow                0.16.1.dev446  py36h398749e_0  arrow-nightlies
pyarrow                0.16.1.dev446  py37h398749e_0  arrow-nightlies
pyarrow                0.16.1.dev446  py38h398749e_0  arrow-nightlies

I tried downgrading python to 3.7, 3.6, and 3.5 but I always get the same UnsatisfiableError exception.

Is there a way to solve this issue?

EDIT:

After running @cel recommendations:

conda create -n foo -c arrow-nightlies python=3.8 pyarrow=0.16.1.dev446 --dry-run

I get:

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package python conflicts for:
pyarrow=0.16.1.dev446 -> python[version='>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0']
python=3.8
pyarrow=0.16.1.dev446 -> numpy[version='>=1.16,<2.0a0'] -> python[version='>=2.7,<2.8.0a0|>=3.5,<3.6.0a0']

Output of conda config --show:

$ conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
  - ca-certificates
  - certifi
  - openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_stack: 0
auto_update_conda: True
bld_path: 
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
  - defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /Users/XXXXXXXX/miniconda3/conda-bld
custom_channels:
  pkgs/main: https://repo.anaconda.com
  pkgs/r: https://repo.anaconda.com
  Users/XXXXXXXX/miniconda3/conda-bld: file://
  pkgs/pro: https://repo.anaconda.com
custom_multichannels:
  defaults: 
    - https://repo.anaconda.com/pkgs/main
    - https://repo.anaconda.com/pkgs/r
  local: 
    - file:///Users/XXXXXXXX/miniconda3/conda-bld
debug: False
default_channels:
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
default_python: 3.6
default_threads: None
deps_modifier: not_set
dev: False
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env}) 
envs_dirs:
  - /Users/XXXXXXXX/miniconda3/envs
  - /Users/XXXXXXXX/.conda/envs
error_upload_url: https://conda.io/conda-post/unexpected-error
execute_threads: 1
extra_safety_checks: False
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:
  - /Users/XXXXXXXX/miniconda3/pkgs
  - /Users/XXXXXXXX/.conda/pkgs
proxy_servers: {}
quiet: False
remote_backoff_factor: 1
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
repodata_fns:
  - current_repodata.json
  - repodata.json
repodata_threads: None
report_errors: None
restore_free_channel: False
rollback_enabled: True
root_prefix: /Users/XXXXXXXX/miniconda3
safety_checks: warn
sat_solver: pycosat
separate_format_cache: False
shortcuts: True
show_channel_urls: None
solver_ignore_timestamps: False
ssl_verify: True
subdir: osx-64
subdirs:
  - osx-64
  - noarch
target_prefix_override: 
track_features: []
unsatisfiable_hints: True
unsatisfiable_hints_check_depth: 2
update_modifier: update_specs
use_index_cache: False
use_local: False
use_only_tar_bz2: False
verbosity: 0
verify_threads: 1
whitelist_channels: []

Solution

  • This is a bug in conda. Downgrading conda as described here works.

    After downgrading, conda reveals the following dependencies which were not reported before:

    $ conda create -n foo -c arrow-nightlies pyarrow=0.16.1.dev510 --dry-run
    Collecting package metadata: done
    Solving environment: failed
    
    PackagesNotFoundError: The following packages are not available from current channels:
    
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> aws-sdk-cpp
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> boost-cpp[version='>=1.72.0,<1.72.1.0a0']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> grpc-cpp[version='>=1.27.3,<1.28.0a0']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> libcxx[version='>=9.0.1']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> lz4-c[version='>=1.8.3,<1.8.4.0a0']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> python_abi=3.8[build=*_cp38]
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> snappy[version='>=1.1.8,<2.0a0']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> thrift-cpp[version='>=0.13.0,<0.14.0a0']
      - pyarrow=0.16.1.dev510 -> arrow-cpp[version='>=0.16.1.0DEV.510,<0.17.0a0'] -> zstd[version='>=1.4.4,<1.4.5.0a0']
    

    I'm able to install pyarrow nightlies after solving the dependencie