CityofToronto / bdit_triplinker

Python package to link vehicle-for-hire trips together into driver work shifts
GNU General Public License v3.0
2 stars 0 forks source link

Fix Miniconda Windows environment for Travis #11

Open cczhu opened 5 years ago

cczhu commented 5 years ago

Currently the Travis build for master is failing because the Miniconda environment is unable to update conda. Miniconda is installed using Chocolatey:

choco install miniconda3;
conda config --set always_yes yes --set changeps1 no;
source $MINICONDA_PATH/etc/profile.d/conda.sh;

Then update is attempted using:

conda update -q conda;

which leads to the error

Your build has been stopped.
Traceback (most recent call last):
  File "C:\tools\miniconda3\lib\site-packages\conda\exceptions.py", line 1062, in __call__
    return func(*args, **kwargs)
  File "C:\tools\miniconda3\lib\site-packages\conda\cli\main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "C:\tools\miniconda3\lib\site-packages\conda\cli\conda_argparse.py", line 80, in do_call
    module = import_module(relative_mod, __name__.rsplit('.', 1)[0])
  File "C:\tools\miniconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\tools\miniconda3\lib\site-packages\conda\cli\main_update.py", line 8, in <module>
    from .install import install
  File "C:\tools\miniconda3\lib\site-packages\conda\cli\install.py", line 19, in <module>
    from ..core.index import calculate_channel_urls, get_index
  File "C:\tools\miniconda3\lib\site-packages\conda\core\index.py", line 9, in <module>
    from .package_cache_data import PackageCacheData
  File "C:\tools\miniconda3\lib\site-packages\conda\core\package_cache_data.py", line 15, in <module>
    from conda_package_handling.api import InvalidArchiveError
  File "C:\tools\miniconda3\lib\site-packages\conda_package_handling\api.py", line 3, in <module>
    from libarchive.exception import ArchiveError as _LibarchiveArchiveError
  File "C:\tools\miniconda3\lib\site-packages\libarchive\__init__.py", line 1, in <module>
    from .entry import ArchiveEntry
  File "C:\tools\miniconda3\lib\site-packages\libarchive\entry.py", line 6, in <module>
    from . import ffi
  File "C:\tools\miniconda3\lib\site-packages\libarchive\ffi.py", line 48, in <module>
    libarchive = ctypes.cdll.LoadLibrary(libarchive_path)
  File "C:\tools\miniconda3\lib\ctypes\__init__.py", line 434, in LoadLibrary
    return self._dlltype(name)
  File "C:\tools\miniconda3\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
TypeError: LoadLibrary() argument 1 must be str, not None

This looks like it's a fundamental Miniconda install issue, or a back-incompatible alteration to the way they handle paths. Hopefully the problem will self-correct. If not, I'll look at it, but in the worst case scenario we can also drop Windows and MacOS testing and switch back to Travis's built-in Linux Python environments.