hddm-devs / hddm

HDDM is a python module that implements Hierarchical Bayesian parameter estimation of Drift Diffusion Models (via PyMC).
http://ski.clps.brown.edu/hddm_docs/
Other
259 stars 118 forks source link

Installation on python 3.6 #44

Open zenkavi opened 6 years ago

zenkavi commented 6 years ago

In trying to install on python 3.6 I got the following error: The error suggests kabuki depends on an older version of openssl that is no longer supported on python 3.6 (https://docs.python.org/3/whatsnew/3.6.html). Do you have any recommendations for this?

UnsatisfiableError: The following specifications were found to be in conflict:
  - hddm -> kabuki -> python 3.3* -> openssl 1.0.1*
  - hddm -> kabuki -> python 3.3* -> xz 5.0.5
  - python 3.6*
twiecki commented 6 years ago

Seems the actual problem is that it depends on Python 3.3, as binaries for 3.6 have not been built yet. You could try install via pip instead.

sammosummo commented 6 years ago

Neither conda nor pip worked on my system (Unix, anaconda Python 3.6). I managed to install pymc via conda and kabuki via pip, but neither works for hddm.

Here is the output of pip:

Running setup.py clean for hddm
Failed to build hddm
Installing collected packages: hddm
  Running setup.py install for hddm ... error
    Complete output from command /net/lustre/home/smathias/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-_1xjn9be/hddm/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-hsznps2r-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/hddm
    copying hddm/likelihoods.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/generate.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/utils.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/MPLTraits.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/diag.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/MPLTraits_qt.py -> build/lib.linux-x86_64-3.6/hddm
    copying hddm/__init__.py -> build/lib.linux-x86_64-3.6/hddm
    creating build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/matlab_values.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/test_optimization.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/test_models.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/test_likelihoods.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/benchmark.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/test_generate.py -> build/lib.linux-x86_64-3.6/hddm/tests
    copying hddm/tests/__init__.py -> build/lib.linux-x86_64-3.6/hddm/tests
    creating build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/hddm_transformed.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/hddm_truncated.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/hddm_regression.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/hddm_info.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/hddm_stimcoding.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/base.py -> build/lib.linux-x86_64-3.6/hddm/models
    copying hddm/models/__init__.py -> build/lib.linux-x86_64-3.6/hddm/models
    creating build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/plot_posterior_quantiles.py -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/simple_model.py -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/postpred.py -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/__init__.py -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/simple_subjs_difficulty.csv -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/simple_difficulty.csv -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/cavanagh_theta_nn.csv -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/simple_subjs_difficulty_single.csv -> build/lib.linux-x86_64-3.6/hddm/examples
    copying hddm/examples/simple_difficulty.conf -> build/lib.linux-x86_64-3.6/hddm/examples
    running build_ext
    building 'wfpt' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/src
    gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/net/lustre/home/smathias/anaconda3/lib/python3.6/site-packages/numpy/core/include -I/net/lustre/home/smathias/anaconda3/include/python3.6m -c src/wfpt.cpp -o build/temp.linux-x86_64-3.6/src/wfpt.o
    unable to execute 'gcc': No such file or directory
    error: command 'gcc' failed with exit status 1

And here is the output of conda install -f -c pymc hddm:

Fetching package metadata .............
Solving package specifications: .

UnsatisfiableError: The following specifications were found to be in conflict:
  - hddm -> kabuki -> python 3.3* -> xz 5.0.5
  - python 3.6*
Use "conda info <package>" to see the dependencies for each package.

I assumed that -f would force conda not to look for dependencies but that doesn't seem to be the case.

twiecki commented 6 years ago

What error are you getting?

On Wed, Nov 1, 2017 at 3:20 PM, Sam Mathias notifications@github.com wrote:

Neither conda nor pip worked on my system (Unix, anaconda Python 3.6). I managed to install pymc via conda and kabuki via pip, but neither works for hddm.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/hddm-devs/hddm/issues/44#issuecomment-341119604, or mute the thread https://github.com/notifications/unsubscribe-auth/AApJmAUM5ih-hj9qw4gfH3K2GIJk8gBoks5syH4bgaJpZM4PhOw1 .

sammosummo commented 6 years ago

I updated my answer with the errors.

Actually I think the issue is that I can't run gcc from a particular node of my computing system. Installing from a different node works.

While this was just my being dumb, it could be useful for people to realize that you can mix-and-match pip and conda to install as necessary.