Git Product home page Git Product logo

ilastik-conda-recipes's Introduction

ilastik logo

ilastik

The interactive learning and segmentation toolkit

CircleCI AppVeyor Codecov Image.sc forum Code style: black

Leverage machine learning algorithms to easily segment, classify, track and count your cells or other experimental data. Most operations are interactive, even on large datasets: you just draw the labels and immediately see the result. No machine learning expertise required.

Screenshot

See ilastik.org for more info.


Installation

Binary installation

Go to the download page, get the latest non-beta version for your operating system, and follow the installation instructions. If you are new to ilastik, we suggest to start from the pixel classification workflow. If you don't have a dataset to work with, download one of the example projects to get started.

Conda installation (experimental)

ilastik is also available as a conda package on our ilastik-forge conda channel. We recommend using mamba instead of conda, for faster installation:

mamba create -n ilastik --override-channels -c pytorch -c ilastik-forge -c conda-forge ilastik

# activate ilastik environment and start ilastik
conda activate ilastik
ilastik

Python compatibility notes

Versions of ilastik until 1.4.1b2 are based on, and only compatible with Python 3.7 Starting from ilastik 1.4.1b3 ilastik environments can be created with Python versions 3.7 to 3.9. Limitations when going with Python 3.7: please use a version of tifffile >2020.9.22,<=2021.11.2 (see also note in environment-dev.yml).

Usage

ilastik is a collection of workflows, designed to guide you through a sequence of steps. You can select a new workflow, or load an existing one, via the startup screen. The specific steps vary between workflows, but there are some common elements like data selection and data navigation. See more details on the documentation page.

Support

If you have a question, please create a topic on the image.sc forum. Before doing that, search for similar topics first: maybe your issue has been already solved! You can also open an issue here on GitHub if you have a technical bug report and/or feature suggestion.

Contributing

We always welcome good pull requests! If you just want to suggest a documentation edit, you can do this directly here, on GitHub. For more complex changes, see CONTRIBUTING.md for details.

License

GPL

ilastik-conda-recipes's People

Contributors

chaubold avatar emilmelnikov avatar jaimeivancervantes avatar jakirkham avatar k-dominik avatar lldelisle avatar m-novikov avatar stuarteberg avatar tingzhao avatar wolny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ilastik-conda-recipes's Issues

investigate side-effects of pandas upgrade

We found an issue (ilastik/ilastik#2147) related to a change of behavior of pandas.concat from 0.24.x to 0.25.

Previously different types of indices would be handled more gracefully, now if something like uint32 and int64 is encountered as an index, this will be cased to object. h5py will then in turn not serialize this (without help) and right now I am not sure which parts of the code rely on the index being an integer type - need to investigate this with more time.

see also https://github.com/ilastik/ilastikrag/blob/8812be124f589bf68272852fe91a69e86d0371be/ilastikrag/rag.py#L524, where the index for the features is constructed as uint32, and https://github.com/ilastik/ilastik/blob/4b76c50442ad561eaa579745524808a912f129f7/ilastik/applets/edgeTraining/opEdgeTraining.py#L283 where the dataset to be concatenated is constructed with the default index type.

Scipy package in dependencies is missing libgfortran

FYI: when one sets up conda afresh on a linux machine (noticed it on two Ubuntu 14.04 boxes, one of them my CircleCI bot...) and installs ilastik-everything-but-tracking, the provided scipy version is 0.16.0. But that one messed something up between gfortran and mkl (as @jakirkham found out at some point).

Traceback (most recent call last):
  File "/home/ubuntu/hytra/scripts/hypotheses_graph_to_json.py", line 13, in <module>
    import hytra.core.hypothesesgraph as hypothesesgraph
  File "/home/ubuntu/hytra/hytra/core/hypothesesgraph.py", line 2, in <module>
    from sklearn.neighbors import KDTree
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/sklearn/neighbors/__init__.py", line 6, in <module>
    from .ball_tree import BallTree
  File "ball_tree.pyx", line 1, in init sklearn.neighbors.ball_tree (sklearn/neighbors/ball_tree.c:35730)
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/sklearn/utils/__init__.py", line 16, in <module>
    from .class_weight import compute_class_weight, compute_sample_weight
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/sklearn/utils/class_weight.py", line 7, in <module>
    from ..utils.fixes import in1d
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/sklearn/utils/fixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/scipy/sparse/linalg/__init__.py", line 109, in <module>
    from .isolve import *
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/scipy/sparse/linalg/isolve/__init__.py", line 6, in <module>
    from .iterative import *
  File "/home/ubuntu/miniconda/envs/test-env/lib/python2.7/site-packages/scipy/sparse/linalg/isolve/iterative.py", line 7, in <module>
    from . import _iterative
ImportError: libgfortran.so.1: cannot open shared object file: No such file or directory

I had to manually switch to scipy=0.17.0=np19py27_2 (see e.g. ilastik/hytra@939e5ae).

osx: opencv linking issue

A recipe for OpenCV 2.4 is included in this repo because it is needed by a FlyEM library (NeuroProof). On Mac, there's a slight problem with it: the _ml library links against the _core library with the wrong path.

$ otool -L /miniconda2/envs/flyem/lib/libopencv_ml.2.4.10.dylib
/miniconda2/envs/flyem/lib/libopencv_ml.2.4.10.dylib:
    @rpath/./libopencv_ml.2.4.dylib (compatibility version 2.4.0, current version 2.4.10)
    lib/libopencv_core.2.4.dylib (compatibility version 2.4.0, current version 2.4.10)
    @rpath/./libstdc++.6.dylib (compatibility version 7.0.0, current version 7.18.0)
    @rpath/./libgomp.1.dylib (compatibility version 2.0.0, current version 2.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
    @rpath/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

vigra fails to run tests due to readline conflict for /bin/sh created by LD_LIBRARY_PATH

the vigra build uses LD_LIBRARY_PATH to run the tests during the package building stage.

this fails pretty early on my Gentoo machine:

++ uname
+ [[ Linux == \D\a\r\w\i\n ]]
+ export LD_LIBRARY_PATH=/home/speter/miniconda2/envs/_build_placehold_placehold_placehold_placehold_plac/lib:
+ LD_LIBRARY_PATH=/home/speter/miniconda2/envs/_build_placehold_placehold_placehold_placehold_plac/lib:
+ make -j4 check
/bin/sh: symbol lookup error: /bin/sh: undefined symbol: rl_signal_event_hook
/bin/sh: /bin/shsymbol lookup error: /bin/sh: undefined symbol: rl_signal_event_hook
CMakeFiles/check_python.dir/build.make:70: recipe for target 'CMakeFiles/check_python.dir/depend' failed
make[3]: *** [CMakeFiles/check_python.dir/depend] Error 127
test/adjacency_list_graph/CMakeFiles/test_adjacency_list_graph.dir/build.make:140: recipe for target 'test/adjacency_list_graph/CMakeFiles/test_adjacency_list_graph.dir/depend' failed
make[3]: *** [test/adjacency_list_graph/CMakeFiles/test_adjacency_list_graph.dir/depend] Error 127
: symbol lookup error: /bin/sh: undefined symbol: rl_signal_event_hook
CMakeFiles/Makefile2:214: recipe for target 'CMakeFiles/check_python.dir/all' failed
make[2]: *** [CMakeFiles/check_python.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:1260: recipe for target 'test/adjacency_list_graph/CMakeFiles/test_adjacency_list_graph.dir/all' failed
make[2]: *** [test/adjacency_list_graph/CMakeFiles/test_adjacency_list_graph.dir/all] Error 2
test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/build.make:144: recipe for target 'test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/depend' failed
make[3]: *** [test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/depend] Error 127
CMakeFiles/Makefile2:1344: recipe for target 'test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/all' failed
make[2]: *** [test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/all] Error 2
/bin/sh: symbol lookup error: /bin/sh: undefined symbol: rl_signal_event_hook
src/impex/CMakeFiles/vigraimpex.dir/build.make:669: recipe for target 'src/impex/CMakeFiles/vigraimpex.dir/depend' failed
make[3]: *** [src/impex/CMakeFiles/vigraimpex.dir/depend] Error 127
CMakeFiles/Makefile2:462: recipe for target 'src/impex/CMakeFiles/vigraimpex.dir/all' failed
make[2]: *** [src/impex/CMakeFiles/vigraimpex.dir/all] Error 2
CMakeFiles/Makefile2:108: recipe for target 'CMakeFiles/check.dir/rule' failed
make[1]: *** [CMakeFiles/check.dir/rule] Error 2
Makefile:208: recipe for target 'check' failed
make: *** [check] Error 2

The problem is that bash tries to use the readline library from the miniconda environment which fails because that one does not export the rl_signal_event_hook symbol.

% LD_LIBRARY_PATH=/home/speter/miniconda2/envs/_build_placehold_placehold_placehold_placehold_plac/lib /bin/sh
/bin/sh: symbol lookup error: /bin/sh: undefined symbol: rl_signal_event_hook

% ldd /bin/sh                                                                                                              :(
    linux-vdso.so.1 (0x00007fff18907000)
    libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fe299918000)
    libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fe2996c1000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe299326000)
% readelf -s /lib64/libreadline.so.6 | grep rl_signal_event_hook | wc -l                                          
1
% readelf -s /home/speter/miniconda2/envs/_build_placehold_placehold_placehold_placehold_plac/lib/libreadline.so.6 | grep rl_signal_event_hook | wc -l
0
 % emerge -pv sys-libs/readline

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-libs/readline-6.3_p8-r2::gentoo  USE="-static-libs -utils" ABI_X86="(64) -32 (-x32)" 2,422 KiB

Total: 1 package (1 reinstall), Size of downloads: 2,422 KiB

% conda list --export | grep readline
readline=6.2=2

In general it seems to be a bad idea to call dynamically linked programs outside of the miniconda environment with a LD_LIBRARY_PATH but I'm not sure what a good solution for the test stage is.

clean up ilastik-package

We still have a run_ilastik.bat file in our ilastik-exe package which runs ilastik by calling our python distro. But it does not a good job at isolating dll search folders, so on some system this might break (mkl might be the usual suspect). It has the benefit that you can also run the tests from an installation, but I haven't ever used it. It might be confusing for users to have it there, because our documentation often has linux/osx examples, and there the executable is called run_ilastik.sh. Maybe a rename could already resolve the problem... or we add a patched run_python.exe or something to achieve proper isolation.

installation from conda broken

We have been working on integration between IDR/OMERO and ilastik (popular during our training session). We install ilastik from Conda, use ilastik API and run the notebook in mybinder
I noticed last night that it is no longer possible to build the docker image using

ilastik-dependencies-no-solvers==1.4

line from: https://github.com/ome/omero-guide-ilastik/blob/master/binder/environment.yml (for reference)

Digging into the issue, the failure started to happen after then new conda packages e.g. ilastikrag were published few days ago

I have now updated the environment.yml (ome/omero-guide-ilastik#20) so I can still use the part of the API

testing environment: linux

Need to rebuild all packages, compiler chain switch on conda-forge

With compiler chain switch on conda-forge, we cannot guarantee binary compatibility anymore (at least on the mac this leads to problems). We should therefore rebuild everything using the latest conda-forge dependencies.

Current workaround:

conda-forge provides "roll-back" packages under the cf201901 label. So installing with

conda install/create ... -c ilastik-forge -c conda-forge/label/cf201901 ...

will work in the current state.

Ubuntu 14.04 installing our package GCC fails to compile "Hello World"

@ilastikdev and I tried to use conda on Ubuntu 14.04 to get a development environment set up to compile pgmlink, and it took a while until we noticed why we could not install GCC. To try this on your own, do the following:

conda create -n foobar -c ilastik ilastik-everything
conda install -c ilastik gcc

Which leads to the following error:

/usr/bin/ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status
Installation failed: gcc is not able to compile a simple 'Hello, World' program.
Error: Error: post-link failed for: gcc-4.8.2.99-linux_portable

Interestingly, installing GCC in a new environment sometimes works, but not always (we didn't find a pattern yet). But specifying CPLEX_ROOT_DIR=/your/path in the same command line as conda create fixes the problem, then it always succeeds (which is the way of installing the cplex-shared package that needs GCC).

Meaning: the instructions in the README do not work on Ubuntu if you want to be able to compile C++ projects against the conda environment.

ilastik plugin for fiji

Dear ilastik conda recipe developers,
I would like to have ilastik working with fiji on a conda environment. Fiji is already available in conda (bioconda channel: https://anaconda.org/bioconda/fiji). I saw on your documentation that the way to install the ilastik plugin is to use the plugin manager from Fiji but I was wondering if it would be possible to install it just by using the jar and just writting a simple recipe like https://github.com/bioconda/bioconda-recipes/tree/master/recipes/fiji-morpholibj
Thanks for your feedback.
PS: If you agree on the principle and tell me where I can find the jar, I can write the recipe and test.

Need documentation for setting up the Windows build

Getting the Windows build environment set up on a machine is non-trivial, and we should document the process for doing so.

Side note: Right now the windows build is in a totally different branch (toolset-config). That won't change any time soon, because we're waiting on some changes in conda-build. But we should still document the current setup. I think the right place to do so is in the toolset-config branch, possibly in README.md or maybe in a separate branch.

cc @ilastikdev @ukoethe

Look into alternatives for packaging binaries

This issue is a reminder to look into alternatives for binary distribution

Our current way of packaging binaries (copying the conda environment) works atm. This is, however not guaranteed in the future. Also, the current way was implemented 4 years ago. New alternatives have emerged.

Alternatives (to be populated):

conda create -n ilastik-devel -c ilastik ilastik-everything

conda create -n ilastik-devel -c ilastik ilastik-everything

fails even if CPLEX_ROOT_DIR is defined and cplex installed

[      COMPLETE      ]|#######################################################################| 100%
Linking packages ...
+ unset CONDA_NPY
+ unset CONDA_PY
++ uname
+ '[' Linux == Darwin ']'
++ ls /home/jales/software/cplex/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic/libilocplex.so
+ EXISTING_SHARED_OBJECT=/home/jales/software/cplex/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic/libilocplex.so
+ '[' /home/jales/software/cplex/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic/libilocplex.so == NOT_PRESENT ']'
+ mkdir -p /home/jales/software/miniconda/envs/ilastik-devel/lib
++ uname
+ '[' Linux == Darwin ']'
+ cd /home/jales/software/miniconda/envs/ilastik-devel/lib
+ ln -f -s /home/jales/software/cplex/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic/libcplex.so
+ ln -f -s /home/jales/software/cplex/CPLEX_Studio1251/concert/lib/x86-64_sles10_4.1/static_pic/libconcert.so
+ ln -f -s /home/jales/software/cplex/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic/libilocplex.so
******************************************************
* You must define GUROBI_ROOT_DIR in your environment *
* before using gurobi-symlink for the first time.      *
******************************************************
Error: Error: post-link failed for: gurobi-symlink-0.1-2                                      |   2%

PGMlink OSX binary does not include _ceil symbol - CPLEX related?

I did have tracking in ilastik running using conda at some point, but I do not recall since when it is broken. I am not sure whether this problem is related to changes in pgmlink build settings or the cplex shared library creation.

Possible cause: cplex-shared
I guess I always had libcplex.dylib and the like in the respective search paths of our cplex-shared target thus it never got rebuilt. Now I tried and got trapped when importing pgmlink within python:

ImportError: dlopen(/path/to/miniconda/envs/ilastikdev/lib/python2.7/site-packages/pgmlink.so, 2): Symbol not found: _ceil
  Referenced from: /path/to/miniconda/envs/ilastikdev/lib/python2.7/site-packages/../..//libpgmlink.dylib
  Expected in: /path/to/cplex/cplex/lib/x86-64_darwin/static_pic/libcplex.dylib
 in /path/to/miniconda/envs/ilastikdev/lib/python2.7/site-packages/../..//libpgmlink.dylib

@stuarteberg are you sure you are using conda-created cplex libs here? I've tried to narrow down where that symbol is located in my old buildem setup, but without success.

Soft-link run_ilastik.sh in conda bin directory

Hi. I was wondering whether it would be possible to soft-link the run_ilastik.sh script in the environment bin/ directory as part of the recipe build process. Currently, it is placed in the top-level directory of the conda environment. I have tested this behaviour after the creation of the conda environment and it works well. I think I remember having issues when the script was physically copied in bin/ due to path searches.

I am trying to run ilastik as part of a pipeline in --headless mode, and ideally I dont want to have any interaction with the environment other than sourcing it:
https://github.com/drpatelh/nf-core-imcyto/blob/master/environment_ilastik.yml

In my opinion this would make things more portable across multiple containers so it would be great to know what you think.

Broken ilastik project after upgrade to ilastik-meta 1.4.0b8 and 1.4.0b11

The following pipeline https://github.com/ome/omero-guide-ilastik/blob/master/notebooks/pipelines/pixel-class-133.ilp was created using ilastik version 1.3.3 via the UI interface.
It works nicely with ilastik-meta 1.4.0b5 but after upgrading to ilastik-meta 1.4.0b8 it leads to

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-71fd14454b09> in <module>
     23     )
     24 ])
---> 25 predictions = shell.workflow.batchProcessingApplet.run_export(role_data_dict, export_to_array=True)
     26 for data in predictions:
     27     # Re-organise array from tzyxc to tczyx order

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/batchProcessing/batchProcessingApplet.py in run_export(self, lane_configs, export_to_array, export_function)
    156                     lane_config,
    157                     export_function=export_function,
--> 158                     progress_callback=partial(lerpProgressSignal, global_progress_start, global_progress_end),
    159                 )
    160                 results.append(result)

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/batchProcessing/batchProcessingApplet.py in export_dataset(self, lane_config, export_function, progress_callback)
    190         # Call customization hook
    191         self.dataExportApplet.prepare_for_entire_export()
--> 192         self.dataSelectionApplet.pushLane(lane_config)
    193         try:
    194             # Call customization hook

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/dataSelection/dataSelectionApplet.py in pushLane(self, role_infos)
    313 
    314     def pushLane(self, role_infos: Dict[str, DatasetInfo]):
--> 315         return self.topLevelOperator.pushLane(role_infos)
    316 
    317     def dropLastLane(self):

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/dataSelection/opDataSelection.py in pushLane(self, role_infos)
    989         except Exception as e:
    990             self.removeLane(original_num_lanes, original_num_lanes)
--> 991             raise e
    992 
    993     def dropLastLane(self):

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/dataSelection/opDataSelection.py in pushLane(self, role_infos)
    985         try:
    986             lane = self.addLane(self.num_lanes)
--> 987             lane.configure(infos=role_infos)
    988             self.workflow.handleNewLanesAdded()
    989         except Exception as e:

/srv/conda/envs/notebook/ilastik-meta/ilastik/ilastik/applets/dataSelection/opDataSelection.py in configure(self, infos)
    870         for role_index, role_name in enumerate(self.role_names):
    871             if role_name in infos:
--> 872                 self.DatasetGroup[role_index].setValue(infos[role_name])
    873 
    874     def setupOutputs(self):

TypeError: string indices must be integers

ilastik is used via its API, below is the code snippet used

# Re-order the array tczyx -> tzyxc
input_data = input_data.swapaxes(1, 2).swapaxes(2, 3).swapaxes(3, 4)
print(input_data.shape)
# Prepare ilastik
os.environ["LAZYFLOW_THREADS"] = "2"
os.environ["LAZYFLOW_TOTAL_RAM_MB"] = "2000"
args = app.parse_args([])
args.headless = True
args.project = model_file
shell = app.main(args)

print('running ilastik using %s' % model_file)
role_data_dict = OrderedDict(
[
    (
        "Raw Data",
        [
            PreloadedArrayDatasetInfo(preloaded_array=input_data)
        ],
    )
])
predictions = shell.workflow.batchProcessingApplet.run_export(role_data_dict, export_to_array=True)

For reference https://github.com/ome/omero-guide-ilastik/blob/master/notebooks/idr0062_pixel_classification_zarr.ipynb

set up in conda env:

ilastik-dependencies-no-solvers 1.4.1                h37f11e0_5    ilastik-forge
ilastik-feature-selection 0.123.post31    py_1000_ge247095    ilastik-forge
ilastik-meta              1.4.0b8              0_gd06ea9a    ilastik-forge
ilastikrag                0.1.3.post40    py_1001_ha6e9690_g3390b38    ilastik-forge
ilastiktools              0.2.post32      np116py37_1000_h5006e0e_g970daa9    ilastik-forge

nifty-with-gurobi not found in ilastik-forge or conda-forge

> lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial

> conda --version

conda 4.6.11

> python --version

Python 3.7.3

> conda install -c ilastik-forge -c conda-forge ilastik-dependencies-no-solvers

# lots of logging - tl;dr successful

> conda install nifty-with-gurobi -c ilastik-forge -c conda-forge

WARNING: The conda.compat module is deprecated and will be removed in a future release.
Collecting package metadata: done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - nifty-with-gurobi

Current channels:

  - https://conda.anaconda.org/ilastik-forge/linux-64
  - https://conda.anaconda.org/ilastik-forge/noarch
  - https://conda.anaconda.org/conda-forge/linux-64
  - https://conda.anaconda.org/conda-forge/noarch
  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/linux-64
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

Fall 2022 dependecy upgrade

Just so that I will not remember, we can/should upgrade the following

For 1.4.0:

  • vigra to _1033
    • hdf5 to 1.12.2
      • openmg-structured-tracking-headers
      • multi-hypotheses-tracking-with-gurobi

For 1.4.1:

  • all platforms:
    • Python to 3.9
      • volumina (currently tests are failing with py38, py39)
    • vigra to _1034
    • boost to 1.78
    • hdf5 to 1.12.2
    • qt to 5.15 ?
  • native arm64 builds for M1/M2

Remove uses of __conda_version__.txt

conda-build is now issuing a warning:

Deprecation warning: support for __conda_version__ will be removed in Conda build 2.0.Try Jinja templates instead: http://conda.pydata.org/docs/building/environment-vars.html#git-environment-variables

FWIW, I agree with their decision to deprecate __conda_version__. But we'll need to fix it before we upgrade to conda 2.0.

ilastik-feature-selection dependency missing somewhere

(miniconda) speter@speter-laptop ~ 
% conda create --name ilastik-ff-test ilastik-everything-but-tracking
Fetching package metadata .........
Solving package specifications: ..........

Package plan for installation in environment /home/speter/miniconda2/envs/ilastik-ff-test:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    faulthandler-2.4           |           py27_0          32 KB
    ilastik-meta-1.2.0rc7      |       0_g16aaa7c         7.4 MB  ilastik
    six-1.10.0                 |           py27_0          16 KB
    iiboost-0.2.post2          |27_0_76140cd985ab301749395bb47cbc8f8d88cdd257         277 KB  ilastik
    scipy-0.18.0               |      np111py27_0        31.0 MB
    tifffile-0.4.1             |np111py27_2_g05b51f3         107 KB  ilastik
    ilastiktools-0.2           |np111py27_0_g731565e         116 KB  ilastik
    qimage2ndarray-1.4         |      np111py27_5          20 KB  ilastik
    ilastik-deps-pc-headless-1.1|           py27_4          902 B  ilastik
    ilastik-deps-pc-1.1        |           py27_3          894 B  ilastik
    ilastik-deps-carving-1.1.6a7|                1          605 B  ilastik
    ilastik-deps-pc-iiboost-1.1|                1          588 B  ilastik
    ilastik-everything-but-tracking-1.2.0rc3|                0           1 KB  ilastik
    ------------------------------------------------------------
                                           Total:        39.0 MB

The following NEW packages will be INSTALLED:

    boost:                           1.55.0-5                                                ilastik
    cairo:                           1.12.18-6                                                      
    cycler:                          0.10.0-py27_0                                                  
    decorator:                       4.0.10-py27_0                                                  
    faulthandler:                    2.4-py27_0                                                     
    fftw:                            3.3.4-1                                                 ilastik
    fontconfig:                      2.11.1-6                                                       
    freetype:                        2.5.5-1                                                        
    functools32:                     3.2.3.2-py27_0                                                 
    futures:                         3.0.5-py27_0                                                   
    greenlet:                        0.4.10-py27_0                                                  
    h5py:                            2.6.0-np111py27_1                                              
    hdf5:                            1.8.16-0                                                       
    iiboost:                         0.2.post2-27_0_76140cd985ab301749395bb47cbc8f8d88cdd257 ilastik
    ilastik-deps-carving:            1.1.6a7-1                                               ilastik
    ilastik-deps-pc:                 1.1-py27_3                                              ilastik
    ilastik-deps-pc-headless:        1.1-py27_4                                              ilastik
    ilastik-deps-pc-iiboost:         1.1-1                                                   ilastik
    ilastik-everything-but-tracking: 1.2.0rc3-0                                              ilastik
    ilastik-launch:                  0.1-4                                                   ilastik
    ilastik-meta:                    1.2.0rc7-0_g16aaa7c                                     ilastik
    ilastiktools:                    0.2-np111py27_0_g731565e                                ilastik
    itk-seg-conv-only:               4.6.1-4                                                 ilastik
    jbig:                            2.1-0                                                   ilastik
    jpeg:                            8d-1                                                           
    jsonschema:                      2.5.1-py27_0                                                   
    libgcc:                          4.8.5-1                                                        
    libgfortran:                     3.0.0-1                                                        
    libpng:                          1.6.17-0                                                       
    libtiff:                         4.0.6-1                                                 ilastik
    libxml2:                         2.9.2-0                                                        
    matplotlib:                      1.5.1-np111py27_0                                              
    mkl:                             11.3.3-0                                                       
    networkx:                        1.11-py27_0                                                    
    nose:                            1.3.7-py27_1                                                   
    numpy:                           1.11.1-py27_0                                                  
    openssl:                         1.0.2h-1                                                       
    pillow:                          3.3.0-py27_0                                                   
    pip:                             8.1.2-py27_0                                                   
    pixman:                          0.32.6-0                                                       
    psutil:                          4.3.0-py27_0                                                   
    pycairo:                         1.10.0-py27_0                                                  
    pyparsing:                       2.1.4-py27_0                                                   
    pyqt:                            4.11.3-py27_1                                                  
    python:                          2.7.12-1                                                       
    python-dateutil:                 2.5.3-py27_0                                                   
    pytz:                            2016.6.1-py27_0                                                
    qimage2ndarray:                  1.4-np111py27_5                                         ilastik
    qt:                              4.8.6-3                                                        
    readline:                        6.2-2                                                          
    scikit-image:                    0.12.3-np111py27_1                                             
    scikit-learn:                    0.17.1-np111py27_2                                             
    scipy:                           0.18.0-np111py27_0                                             
    setuptools:                      23.0.0-py27_0                                                  
    sip:                             4.16.5-py27_0                                                  
    six:                             1.10.0-py27_0                                                  
    sqlite:                          3.13.0-0                                                       
    tifffile:                        0.4.1-np111py27_2_g05b51f3                              ilastik
    tk:                              8.5.18-0                                                       
    vigra:                           1.11.0.post36-np111py27_1_g6fcc71f                      ilastik
    vtk:                             5.10.1.99-with_pyqt_6                                   ilastik
    wheel:                           0.29.0-py27_0                                                  
    xz:                              5.2.2-0                                                        
    yapsy:                           1.10.423-py27_0                                         ilastik
    zlib:                            1.2.8-3                                                        

Proceed ([y]/n)? 

then inside the new env:

(ilastik-ff-test) speter@speter-laptop ~/miniconda2/envs/ilastik-ff-test 
% ./run_ilastik.sh 
Warning: Ignoring your non-empty QT_PLUGIN_PATH
Starting ilastik from "/home/speter/miniconda2/envs/ilastik-ff-test".
ERROR 2016-07-28 14:20:10,772 excepthooks 30125 139639445841664 Unhandled exception in thread: 'MainThread'
ERROR 2016-07-28 14:20:10,773 excepthooks 30125 139639445841664 Traceback (most recent call last):
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/shell/gui/startShellGui.py", line 91, in launchShell
    from ilastik.shell.gui.ilastikShell import IlastikShell
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/shell/gui/ilastikShell.py", line 81, in <module>
    import ilastik.workflows
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/workflows/__init__.py", line 28, in <module>
    import pixelClassification
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/workflows/pixelClassification/__init__.py", line 21, in <module>
    from pixelClassificationWorkflow import PixelClassificationWorkflow
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/workflows/pixelClassification/pixelClassificationWorkflow.py", line 34, in <module>
    from ilastik.applets.pixelClassification import PixelClassificationApplet, PixelClassificationDataExportApplet
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/applets/pixelClassification/__init__.py", line 21, in <module>
    from pixelClassificationApplet import *
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/applets/pixelClassification/pixelClassificationApplet.py", line 22, in <module>
    from opPixelClassification import OpPixelClassification
  File "/home/speter/miniconda2/envs/ilastik-ff-test/ilastik-meta/ilastik/ilastik/applets/pixelClassification/opPixelClassification.py", line 36, in <module>
    import ilastik_feature_selection
ImportError: No module named ilastik_feature_selection

which can be fixed with

% conda install ilastik-feature-selection

missing module tifffile

I installed ilastik as described in the readme. After activating the environment and attempting to run ilastik using run_ilastik.sh I get the following error message:

  File "/home/fabian/miniconda/envs/ilastik-devel/ilastik-meta/lazyflow/lazyflow/operators/ioOperators/opTiffReader.py", line 8, in <module>
    import tifffile
ImportError: No module named tifffile

Apparently, not all required packages are installed.

My system is a ubuntu 14.04

Cheers,
Fabian

conda's libgcc package masks the system libstdc++.so

[I'm copying this old issue from the conda-recipes issue tracker because that tracker is being disabled. See also: https://github.com/ilastik/ilastik/issues/1227]


(This issue applies to Linux only, I think.**) This issue has been discussed previously on the conda mailing list:

When a package requires libgcc, it will download (among others) libstdc++.so. That version of libstdc++.so is somewhat old. When it appears on the loader RPATH, it masks the system's libstdc++.so, which might contain newer symbols required by third-party packages used by the OS (e.g. OpenGL).

Potential solutions to this problem include the following:

  1. Add a post-link.sh script to the libgcc package that checks the user's system for a newer version of libstdc++.so. If a newer version exists, it should be backwards-compatible with any packages that we built against conda's version libstdc++.so, and therefore there's no need to install conda's copy of libstdc++.so at all.
  2. Upgrade the libgcc package to a cutting-edge version to avoid this problem (and maybe gcc, too). To avoid this problem in the future, it will need to be updated regularly, and packages that depend on libgcc should avoid requiring a specific version.
  3. As wojdyr described in thread 1 above, something called devtoolset-2 might be an alternative solution. seibert mentioned that that's what the numba developers use. IIUC, it would require upgrading Anaconda's build VM from CentOS-5 to CentOS-6, which would change Anaconda's minimum system requirements on Linux (for C++ packages, at least). [Edit: Not if we restrict ourselves to devtoolset v2. See wojdyr's comment below.]

Option 1 seems most attractive to me. (In thread 2 above, manually uninstalling the libgcc package solved the user's problem.)

**I think OSX is not affected because Mach-O dylibs reference libstdc++.dylib via an absolute path, so conda's copy shouldn't conflict with the system copy. And even if it did conflict, OSX ships a really old version of libstdc++ anyway, so our version will always be better.


wojdyr commented:

Re 3.
devtoolset v2 works on RHEL5 and is available also in RHEL clones:
http://linux.web.cern.ch/linux/devtoolset/
http://people.centos.org/tru/devtools-2/
(I'm using the latter).
It was released 2 years ago and has gcc 4.8.2.
The later version (v3 and now v4 is in preparation or maybe already released) are only RHEL6+.


wojdyr commented:

Actually I don't see libgcc in requirements of any anaconda package -- I'm looking at http://repo.continuum.io/pkgs/free/linux-64/repodata.json
Possibly it's required by packages in other repositories? Or it's required but not listed explicitely.


stuarteberg commented:

Actually I don't see libgcc in requirements of any anaconda package

Yeah, the good news is that this isn't a terribly urgent issue, at least for python users.

So far, most python packages can be built with the default compiler on CentOS-5, so they don't need to depend on conda's gcc-4.8 package (or libgcc). For instance, few, if any, require C++, much less a new-ish C++ compiler.

But in the future it would be nice if conda can cleanly support python packages that depend on modern C++.

Possibly it's required by packages in other repositories?

Yes, apparently R packages need it: Try conda create -n testenv -c r r-essentials. (It will download libgcc.) That's how the user in thread 2 discovered this problem.


msarahan commented:

Sorry about the delay here. We are working on modernizing our build stack to GCC 5.2. You are more than welcome to try it out: https://hub.docker.com/r/msarahan/conda_builder_linux/ and anaconda/docker-images#20/

Note that GCC compiles with the GCC 4 ABI compatibility mode.

Concomitant with this, we'll also be updating the libgcc package for the new libgcc and libstdc++. These will become standard packages on Linux with the new compiler, I think.

This is not my area of specialty, so if I'm doing anything daft, please point me in the right direction.


wojdyr commented:

msarahan: it doesn't solve the problem from this issue in general, but it may work in all practical cases for now. It should work unless the system GCC is newer than the one from conda AND you load a system library that uses newly changed functions from libstdc++.


msarahan commented:

Thanks. I'm not sure there is a truly general solution. I will build a new libgcc package with the libraries from gcc 5.2 today. For testing purposes, I will put it on my anaconda.org account for now. I'll post here when I have that up, and will appreciate test feedback. Also, I would value your input on whether we should only provide the compiler in a docker image (to ensure glibc maximum compatibility) or if making a conda package of the compiler adds enough convenience that potential glibc problems are worth ignoring. How much overhead would docker be for you?


wojdyr commented:

I can speak only for myself, but I'm fine with using docker. I've never used it before, but I'll need to get familiar with it anyway, sooner or later.
As a potential user of packages from Anaconda cloud, I'm actually bothered that I don't know what distro they were compiled on and I'm not sure if the packages will work on my system. So I'd be happy if everyone was using the same docker image.


stuarteberg commented:

msarahan: it doesn't solve the problem from this issue in general, but it may work in all practical cases for now. It should work unless the system GCC is newer than the one from conda AND you load a system library that uses newly changed functions from libstdc++

Agreed. By upgrading to gcc-5, you are effectively choosing option 2 from the issue description above. That will work in the near term, but as noted, we'll need to upgrade the gcc package frequently to stay ahead of OS distros.


I'm actually bothered that I don't know what distro they were compiled on

From what I understand, the packages are compiled on CentOS 5.11. For my own packages, I build on a CentOS 5.11 VM, and it seems to be compatible with everything in Anaconda. If you're interested, I could provide a link to my VM image.


msarahan commented:

Anaconda is compiled on CentOS 5. But generally, for anaconda.org, there is no indication what any arbitrary package from any user is compiled with.

Our (in-testing) docker image is at:https://hub.docker.com/r/msarahan/conda_builder_linux/

An updated libgcc is available on my channel:

conda install -c msarahan libgcc

This is compiled with GCC 4 compatibility.


insertinterestingnamehere commented:

This new toolchain is great. I've uploaded experimental builds of libdynd and dynd-python (both require C++14) and they appear to be working well everywhere I've tested them. They are available via conda install dynd-python -c iandh -c msarahan.

Need to review build options for vigra package

At the moment, we build our vigra package with the -O2 flag instead of the -O3 flag. That's because there was at least one function that gcc would miscompile at the -O3 setting, triggering segfaults and/or other spurious behavior. Nowadays, the vigra source has changed, and so has the version of gcc we use, so it's worth giving -O3 a try.

While we're at it, it would be nice to see if there is a performance improvement when switching from -O2 to -O3...

create ilastik-everything-no-solvers fails

(root)jales@seagul:~/software/miniconda$ conda create -n ilastik-devel -c ilastik ilastik-everything-no-solvers
Fetching package metadata: ......
Solving package specifications: .An unexpected error has occurred, please consider sending the
following traceback to the conda GitHub issue tracker at:

    https://github.com/conda/conda/issues

Include the output of the command 'conda info' in your report.


Traceback (most recent call last):
  File "/home/jales/software/miniconda/bin/conda", line 5, in <module>
    sys.exit(main())
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/cli/main.py", line 202, in main
    args_func(args, p)
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/cli/main.py", line 207, in args_func
    args.func(args, p)
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/cli/main_create.py", line 50, in execute
    install.install(args, parser, 'create')
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/cli/install.py", line 334, in install
    minimal_hint=args.alt_hint)
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/plan.py", line 377, in install_actions
    config.track_features, minimal_hint=minimal_hint):
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/resolve.py", line 746, in solve
    minimal_hint=minimal_hint)
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/resolve.py", line 484, in solve2
    clauses = set(self.gen_clauses(v, dists, specs, features))
  File "/home/jales/software/miniconda/lib/python2.7/site-packages/conda/resolve.py", line 342, in gen_clauses
    assert len(clause) > 1, '%s %r' % (fn1, ms)
AssertionError: ilastik-versions-no-solvers-1.2-np112py27_20.tar.bz2 MatchSpec(u'ann 1.1.2')


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.