sci-bots / base-node-rpc

Base classes for Arduino RPC node/device
0 stars 2 forks source link

paver develop_link fails (dependency conflict when installing build and run-time dependencies) #19

Open ryanfobel opened 6 years ago

ryanfobel commented 6 years ago

Problem:

The paver develop_link command fails while installing build and run-time dependencies with the following error:

The following specifications were found to be in conflict:
  - contextlib2==0.5.5=py27_1 -> python=2.7
  - python==3.6.5

Steps to reproduce:

Download this file: test-env.txt

Create a test environment and setup the channel list for that environment:

conda create --name test --file test-env.txt
set CONDARC=%CONDA_PREFIX%\.condarc
conda config --add channels conda-forge
conda config --add channels dropbot

Run the following command:

>paver develop_link
---> base_node_rpc.pavement_base.develop_link
INFO:platformio_helpers.develop:Install build and run-time Conda dependencies...
Solving environment: ...working... done
certifi-2018.4.16    |  143 KB | ########## | 100%
## Package Plan ##

  environment location: C:\Users\Ryan\Miniconda2

  added / updated specs:
    - conda-build

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2018.4.16          |           py27_0         143 KB  conda-forge

The following packages will be UPDATED:

    ca-certificates: 2018.03.07-0      --> 2018.4.16-0      conda-forge
    certifi:         2018.4.16-py27_0  --> 2018.4.16-py27_0 conda-forge
    openssl:         1.0.2o-h2c51139_0 --> 1.0.2o-vc9_0     conda-forge [vc9]

The following packages will be DOWNGRADED:

    conda:           4.5.4-py27_0      --> 4.5.1-py27_0     conda-forge
    conda-build:     3.10.8-py27_0     --> 3.10.2-py27_0    conda-forge

Downloading and Extracting Packages
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done

ITraceback (most recent call last):
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\logging\__init__.py", line 879, in emit
    stream.write(ufs % msg)
IOError: [Errno 0] Error
Logged from file exe_api.py, line 437
Using cache dir: C:\Users\Ryan\.conda-helpers-cache
  git source: base-node-rpc@v0.48.4-dirty (f832b580)
Command: render C:\Users\Ryan\Documents\dev\python\base-node-rpc\.conda-recipe --python=2.7
Reusing cached result...

Output
======
package:
    name: base-node-rpc-dev
    version: 0.48.4
source:
    git_url: ..
build:
    noarch: generic
about:
    home: https://github.com/wheeler-microfluidics/base-node-rpc
    license: MIT
extra:
    copy_test_source_files: true
    final: true
    parent_recipe:
        name: base-node-rpc
        path: C:\Users\Ryan\Documents\dev\python\base-node-rpc\.conda-recipe
        version: 0.48.4

package:
    name: base-node-rpc
    version: 0.48.4
source:
    git_url: ..
build:
    noarch: python
    script:
        - python -m paver generate_arduino_library_properties
        - python -m paver generate_all_code
        - python -c "import os.path; import os; import shutil; import platformio_helpers
            as pioh; lib_src_dir = os.path.join(os.environ['SRC_DIR'], 'lib', 'BaseNodeRpc');
            install_dir = pioh.conda_arduino_include_path().joinpath('BaseNodeRpc');
            shutil.copytree(lib_src_dir, install_dir); "
        - python -m paver build_firmware
        - python -c "import os.path; import os; import shutil; import platformio_helpers
            as pioh; SRC_DIR = os.environ['SRC_DIR']; PIO_BIN_DIR = pioh.conda_bin_path().joinpath('base-node-rpc');
            created = (None if os.path.isdir(PIO_BIN_DIR) else os.makedirs(PIO_BIN_DIR));
            shutil.copy2(os.path.join(SRC_DIR, 'platformio.ini'), os.path.join(PIO_BIN_DIR,
            'platformio.ini')); HEX_DIR = os.path.join(PIO_BIN_DIR, 'uno'); os.makedirs(HEX_DIR);
            shutil.copy2(os.path.join(SRC_DIR, '.pioenvs', 'uno', 'firmware.hex'),
            os.path.join(PIO_BIN_DIR, 'uno', 'firmware.hex'));HEX_DIR = os.path.join(PIO_BIN_DIR,
            'pro8MHzatmega328'); os.makedirs(HEX_DIR); shutil.copy2(os.path.join(SRC_DIR,
            '.pioenvs', 'pro8MHzatmega328', 'firmware.hex'), os.path.join(PIO_BIN_DIR,
            'pro8MHzatmega328', 'firmware.hex'));HEX_DIR = os.path.join(PIO_BIN_DIR,
            'teensy31'); os.makedirs(HEX_DIR); shutil.copy2(os.path.join(SRC_DIR,
            '.pioenvs', 'teensy31', 'firmware.hex'), os.path.join(PIO_BIN_DIR, 'teensy31',
            'firmware.hex'));HEX_DIR = os.path.join(PIO_BIN_DIR, 'micro'); os.makedirs(HEX_DIR);
            shutil.copy2(os.path.join(SRC_DIR, '.pioenvs', 'micro', 'firmware.hex'),
            os.path.join(PIO_BIN_DIR, 'micro', 'firmware.hex'));HEX_DIR = os.path.join(PIO_BIN_DIR,
            'megaADK'); os.makedirs(HEX_DIR); shutil.copy2(os.path.join(SRC_DIR, '.pioenvs',
            'megaADK', 'firmware.hex'), os.path.join(PIO_BIN_DIR, 'megaADK', 'firmware.hex'));HEX_DIR
            = os.path.join(PIO_BIN_DIR, 'megaatmega2560'); os.makedirs(HEX_DIR); shutil.copy2(os.path.join(SRC_DIR,
            '.pioenvs', 'megaatmega2560', 'firmware.hex'), os.path.join(PIO_BIN_DIR,
            'megaatmega2560', 'firmware.hex')); "
        - python -m paver generate_setup
        - python -B setup.py install --single-version-externally-managed --record
            record.txt
requirements:
    build:
        - platformio-framework-arduinoteensy 1.141.0 2
        - cffi 1.11.5 py36_0
        - pyparsing 2.2.0 py36_0
        - arduino-rpc-dev 1.15 0
        - mkl_fft 1.0.2 py36_0
        - yaml 0.1.7 vc14_0
        - semantic_version 2.6.0 py36_0
        - nanopb-helpers-dev 0.12 0
        - cryptography 2.2.1 py36_0
        - python 3.6.5 1
        - alabaster 0.7.10 py36_1
        - clang 5.0.0 2
        - markupsafe 1.0 py36_0
        - ca-certificates 2018.4.16 0
        - scipy 1.1.0 py36h672f292_0
        - jinja2 2.10 py36_0
        - platformio 3.5.2b2.post19 g58ebd7ea_2
        - cogapp 2.5.1 py36_0
        - intel-openmp 2018.0.3 0
        - platformio-platform-teensy 3.0.1 0
        - pygments 2.2.0 py36_0
        - platformio-toolchain-atmelavr 1.40902.1 0
        - pydash 4.4.0 py_0
        - platformio-toolchain-gccarmnoneeabi 1.50401.0 0
        - win_inet_pton 1.0.1 py36_1
        - click 5.1.0 py_0
        - arduino-rpc 1.15 py_0
        - virtualenv 15.1.0 py36_0
        - ntfsutils 0.1.3.post2 1
        - c-array-defs 1.3 0
        - pyopenssl 17.5.0 py36_1
        - backports 1.0 py36_1
        - platformio-tool-teensy 1.141.0 1
        - docutils 0.14 py36_0
        - clang-helpers 0.7 py_0
        - mqtt-messages-python 0.2 py_0
        - arduino-memory 1.4 0
        - wincertstore 0.2 py36_0
        - platformio-platform-atmelavr 1.8.1.post1 ge80a6ae0
        - blinker 1.4 py_0
        - serial-device 0.11 py_0
        - python-clang 5.0.0 py_1
        - platformio-helpers 0.10.1 py_0
        - nanopb-helpers 0.12 py_0
        - lockfile 0.12.2 py36_0
        - pyyaml 3.12 py36_1
        - backports.shutil_get_terminal_size 1.0.0 py_3
        - openssl 1.0.2o vc14_0
        - si-prefix 1.2.1 py_0
        - paho-mqtt-helpers 0.4 py_0
        - vs2015_runtime 14.0.25420 0
        - asn1crypto 0.24.0 py36_0
        - pandas-helpers 0.3 py_0
        - libprotobuf 3.5.2 vc14_0
        - snowballstemmer 1.2.1 py36_0
        - icc_rt 2017.0.4 h97af966_0
        - pycparser 2.18 py36_0
        - packaging 17.1 py_0
        - asyncserial 0.2.3 py_0+git8b4b71e
        - git 2.14.2 3
        - paver 1.2.4 py36_0
        - mkl 2018.0.3 1
        - certifi 2018.4.16 py36_0
        - numpy 1.14.2 py36h5c71026_1
        - or-event 0.2.1 py_0
        - imagesize 1.0.0 py36_0
        - path_helpers 0.7 py36_0
        - nadamq-dev 0.19.3 0
        - trollius 2.2 py36_0
        - arduino-helpers 0.7 py27_0
        - pytz 2018.4 py_0
        - python-dateutil 2.7.3 py_0
        - pysocks 1.6.8 py36_1
        - sphinxcontrib-websupport 1.0.1 py36_0
        - zlib 1.2.11 vc14_0
        - future 0.16.0 py36_0
        - chardet 3.0.4 py36_0
        - setuptools 39.0.1 py36_0
        - vc 14 0
        - mkl_random 1.0.1 py36_0
        - versioneer 0.18 py36_0
        - pip 9.0.3 py36_0
        - wheezy.routing 0.1.157 py_0
        - pyserial 3.4 py36_0
        - nadamq 0.19.3 py36_0
        - nanopb 0.3.7 8
        - babel 2.5.3 py36_0
        - six 1.11.0 py36_1
        - json-tricks 3.11.3 py_0
        - platformio-tool-avrdude 1.60300.2 1
        - pandas 0.22.0 py36_0
        - onoff 1.0.1 py_0
        - wheel 0.31.0 py36_0
        - conda-helpers 0.21 0
        - protobuf 3.5.2 py36_vc14_0
        - ruamel.yaml 0.15.37 py36_0
        - logging-helpers 0.3 py_0
        - urllib3 1.22 py36_0
        - paho-mqtt 1.3.1 py_1
        - platformio-framework-arduinoavr 1.10620.2 2
        - colorama 0.3.9 py36_0
        - whichcraft 0.4.1 py36_0
        - requests 2.18.4 py36_1
        - sphinx 1.7.5 py36_0
        - platformio-tool-scons 3.30001.0 0
        - bottle 0.12.13 py36_0
        - joblib 0.11 py36_0
        - idna 2.6 py36_1
    run:
        - or-event >=0.2.1
        - nadamq >=0.19
        - asyncserial >=0.2.3
        - blinker
        - arduino-rpc >=1.15
        - platformio-helpers >=0.8
        - logging-helpers >=0.3
        - platformio-tool-teensy >=1.141.0
        - platformio-tool-scons >=3.30001.0
        - json-tricks >=3.11.3
        - platformio-tool-avrdude >=1.60300.2
        - serial-device >=0.11
        - base-node-rpc-dev >=0.48.4,<0.49.0a0
        - arduino-rpc-dev >=1.15
    test:
        imports:
            - base_node_rpc
            - base_node_rpc._version
            - base_node_rpc.async
            - base_node_rpc.bin.upload
            - base_node_rpc.bootloader_driver
            - base_node_rpc.intel_hex
            - base_node_rpc.node
            - base_node_rpc.protobuf
            - base_node_rpc.proxy
            - base_node_rpc.queue
about:
    home: https://github.com/wheeler-microfluidics/base-node-rpc
    license: MIT
extra:
    copy_test_source_files: true
    final: true
    parent_recipe:
        name: base-node-rpc
        path: C:\Users\Ryan\Documents\dev\python\base-node-rpc\.conda-recipe
        version: 0.48.4

Execution time: 0:00:00.518000
INFO:conda_helpers.exe_api:Install build and run-time dependencies:
  alabaster ==0.7.10
  arduino-helpers ==0.7
  arduino-memory ==1.4
  arduino-rpc >=1.15
  arduino-rpc-dev >=1.15
  asn1crypto ==0.24.0
  asyncserial >=0.2.3
  babel ==2.5.3
  backports ==1.0
  backports.shutil_get_terminal_size ==1.0.0
  base-node-rpc-dev >=0.48.4,<0.49.0a0
  blinker
  bottle ==0.12.13
  c-array-defs ==1.3
  ca-certificates ==2018.4.16
  certifi ==2018.4.16
  cffi ==1.11.5
  chardet ==3.0.4
  clang ==5.0.0
  clang-helpers ==0.7
  click ==5.1.0
  cogapp ==2.5.1
  colorama ==0.3.9
  conda-helpers ==0.21
  cryptography ==2.2.1
  docutils ==0.14
  future ==0.16.0
  git ==2.14.2
  icc_rt ==2017.0.4
  idna ==2.6
  imagesize ==1.0.0
  intel-openmp ==2018.0.3
  jinja2 ==2.10
  joblib ==0.11
  json-tricks >=3.11.3
  libprotobuf ==3.5.2
  lockfile ==0.12.2
  logging-helpers >=0.3
  markupsafe ==1.0
  mkl ==2018.0.3
  mkl_fft ==1.0.2
  mkl_random ==1.0.1
  mqtt-messages-python ==0.2
  nadamq >=0.19
  nadamq-dev ==0.19.3
  nanopb ==0.3.7
  nanopb-helpers ==0.12
  nanopb-helpers-dev ==0.12
  ntfsutils ==0.1.3.post2
  numpy ==1.14.2
  onoff ==1.0.1
  openssl ==1.0.2o
  or-event >=0.2.1
  packaging ==17.1
  paho-mqtt ==1.3.1
  paho-mqtt-helpers ==0.4
  pandas ==0.22.0
  pandas-helpers ==0.3
  path_helpers ==0.7
  paver ==1.2.4
  pip ==9.0.3
  platformio ==3.5.2b2.post19
  platformio-framework-arduinoavr ==1.10620.2
  platformio-framework-arduinoteensy ==1.141.0
  platformio-helpers >=0.8
  platformio-platform-atmelavr ==1.8.1.post1
  platformio-platform-teensy ==3.0.1
  platformio-tool-avrdude >=1.60300.2
  platformio-tool-scons >=3.30001.0
  platformio-tool-teensy >=1.141.0
  platformio-toolchain-atmelavr ==1.40902.1
  platformio-toolchain-gccarmnoneeabi ==1.50401.0
  protobuf ==3.5.2
  pycparser ==2.18
  pydash ==4.4.0
  pygments ==2.2.0
  pyopenssl ==17.5.0
  pyparsing ==2.2.0
  pyserial ==3.4
  pysocks ==1.6.8
  python ==3.6.5
  python-clang ==5.0.0
  python-dateutil ==2.7.3
  pytz ==2018.4
  pyyaml ==3.12
  requests ==2.18.4
  ruamel.yaml ==0.15.37
  scipy ==1.1.0
  semantic_version ==2.6.0
  serial-device >=0.11
  setuptools ==39.0.1
  si-prefix ==1.2.1
  six ==1.11.0
  snowballstemmer ==1.2.1
  sphinx ==1.7.5
  sphinxcontrib-websupport ==1.0.1
  trollius ==2.2
  urllib3 ==1.22
  vc ==14
  versioneer ==0.18
  virtualenv ==15.1.0
  vs2015_runtime ==14.0.25420
  wheel ==0.31.0
  wheezy.routing ==0.1.157
  whichcraft ==0.4.1
  win_inet_pton ==1.0.1
  wincertstore ==0.2
  yaml ==0.1.7
  zlib ==1.2.11
Solving environment: ...working... failed

 : The following specifications were found to be in conflict:
  - contextlib2==0.5.5=py27_1 -> python=2.7
  - python==3.6.5
Use "conda info <package>" to see the dependencies for each package.

Captured Task Output:
---------------------

---> base_node_rpc.pavement_base.develop_link
Traceback (most recent call last):
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\paver\tasks.py", line 196, in _run_task
    return do_task()
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\paver\tasks.py", line 193, in do_task
    return func(**kw)
  File ".\base_node_rpc\pavement_base.py", line 483, in develop_link
    package_name=options.package_name)
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\platformio_helpers\develop.py", line 59, in link
    ch.development_setup(recipe_dir, verbose=True)
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\conda_helpers\exe_api.py", line 495, in development_setup
    else False)
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\conda_helpers\exe_api.py", line 751, in find_dev_packages
    for dev_path_i in [ph.path(str.strip(p)) for p in conda_pth.lines()]:
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\path_helpers\__init__.py", line 790, in lines
    f = self.open(_textmode)
  File "C:\Users\Ryan\Miniconda2\envs\test\lib\site-packages\path_helpers\__init__.py", line 609, in open
    return open(self, mode)
IOError: [Errno 2] No such file or directory: path(u'C:\\Users\\Ryan\\Miniconda2\\envs\\test\\Lib\\site-packages\\conda.pth')