has2k1 / scikit-misc

Miscellaneous tools for data analysis and scientific computing
https://has2k1.github.io/scikit-misc/stable
BSD 3-Clause "New" or "Revised" License
37 stars 9 forks source link

Unable to install scikit-misc (Windows 10, Python 3.8) #11

Closed GitHunter0 closed 3 years ago

GitHunter0 commented 3 years ago

I cannot install scikit-misc , I run this in my Conda environment: python -m pip install scikit-misc And it is throwing a lot of error messages like:

ERROR: Command errored out with exit status 1:
  Complete output (201 lines):
  blas_opt_info:
  blas_mkl_info:
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  customize MSVCCompiler
    libraries mkl_rt not found in ['C:/Users/...\\Library\\lib']
    NOT AVAILABLE
  blis_info:
    libraries blis not found in ['C:/Users/...\Library\\lib']
    NOT AVAILABLE
  openblas_info:
    libraries openblas not found in ['C:/Users/...\\Library\\lib']
  get_default_fcompiler: matching types: '['gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95', 'intelvem', 'intelem', 'flang']'
  customize GnuFCompiler
  Could not locate executable g77
  Could not locate executable f77
  customize IntelVisualFCompiler
  Could not locate executable ifort
  Could not locate executable ifl

... a lot more...

ERROR: Failed building wheel for scikit-misc

Any help would be greatly appreciated.

Python 3.8
Windows 10 Pro

# Name                    Version                   Build  Channel
abseil-cpp                20210324.0           h0e60522_0    conda-forge
altair                    4.1.0                      py_1    conda-forge
argh                      0.26.2          pyh9f0ad1d_1002    conda-forge
argon2-cffi               20.1.0           py38h294d835_2    conda-forge
arrow-cpp                 4.0.0           py38heb70aae_1_cpu    conda-forge
astor                     0.8.1              pyh9f0ad1d_0    conda-forge
async_generator           1.10                       py_0    conda-forge
attrs                     21.1.0             pyhd8ed1ab_0    conda-forge
aws-c-cal                 0.5.7                h25e91e5_1    conda-forge
aws-c-common              0.5.11               h8ffe710_0    conda-forge
aws-c-event-stream        0.2.7                h9100e2b_4    conda-forge
aws-c-io                  0.9.11               ha9e6ac0_3    conda-forge
aws-checksums             0.1.11               ha9e6ac0_6    conda-forge
aws-sdk-cpp               1.8.186              h496e9c5_2    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
base58                    2.1.0              pyhd8ed1ab_0    conda-forge
bleach                    3.3.0              pyh44b312d_0    conda-forge
blinker                   1.4                        py_1    conda-forge
boto3                     1.17.68            pyhd8ed1ab_0    conda-forge
botocore                  1.20.68            pyhd8ed1ab_0    conda-forge
brotli                    1.0.9                h0e60522_4    conda-forge
brotlipy                  0.7.0           py38h294d835_1001    conda-forge
bzip2                     1.0.8                h8ffe710_4    conda-forge
c-ares                    1.17.1               h8ffe710_1    conda-forge
ca-certificates           2020.12.5            h5b45459_0    conda-forge
cachetools                4.2.2              pyhd8ed1ab_0    conda-forge
certifi                   2020.12.5        py38haa244fe_1    conda-forge
cffi                      1.14.5           py38hd8c33c5_0    conda-forge
chardet                   4.0.0            py38haa244fe_1    conda-forge
click                     7.1.2              pyh9f0ad1d_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
cryptography              3.4.7            py38hd7da0ea_0    conda-forge
cycler                    0.10.0                   pypi_0    pypi
decorator                 5.0.7              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
descartes                 1.1.0                    pypi_0    pypi
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
et-xmlfile                1.1.0                    pypi_0    pypi
freetype                  2.10.4               h546665d_1    conda-forge
gflags                    2.2.2             ha925a31_1004    conda-forge
gitdb                     4.0.7              pyhd8ed1ab_0    conda-forge
gitpython                 3.1.15             pyhd8ed1ab_0    conda-forge
glog                      0.4.0                h0174b99_3    conda-forge
grpc-cpp                  1.37.1               hea9717d_0    conda-forge
idna                      2.10               pyh9f0ad1d_0    conda-forge
importlib-metadata        4.0.1            py38haa244fe_0    conda-forge
intel-openmp              2021.2.0           h57928b3_616    conda-forge
ipykernel                 5.5.4            py38h43734a8_0    conda-forge
ipython                   7.23.1           py38h43734a8_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
ipywidgets                7.6.3              pyhd3deb0d_0    conda-forge
jedi                      0.18.0           py38haa244fe_2    conda-forge
jinja2                    2.11.3             pyh44b312d_0    conda-forge
jmespath                  0.10.0             pyh9f0ad1d_0    conda-forge
joblib                    1.0.1                    pypi_0    pypi
jpeg                      9d                   h8ffe710_0    conda-forge
jsonschema                3.2.0              pyhd8ed1ab_3    conda-forge
jupyter_client            6.1.12             pyhd8ed1ab_0    conda-forge
jupyter_core              4.7.1            py38haa244fe_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jupyterlab_widgets        1.0.0              pyhd8ed1ab_1    conda-forge
kaleido                   0.2.1                    pypi_0    pypi
kiwisolver                1.3.1                    pypi_0    pypi
krb5                      1.17.2               hbae68bd_0    conda-forge
lcms2                     2.12                 h2a16943_0    conda-forge
libblas                   3.9.0                     9_mkl    conda-forge
libcblas                  3.9.0                     9_mkl    conda-forge
libcurl                   7.76.1               hf1763fc_1    conda-forge
liblapack                 3.9.0                     9_mkl    conda-forge
libpng                    1.6.37               h1d00b33_2    conda-forge
libprotobuf               3.15.8               h7755175_0    conda-forge
libsodium                 1.0.18               h8d14728_1    conda-forge
libssh2                   1.9.0                h680486a_6    conda-forge
libthrift                 0.14.1               h636ae23_1    conda-forge
libtiff                   4.2.0                hc10be44_1    conda-forge
libutf8proc               2.6.1                hcb41399_0    conda-forge
lz4-c                     1.9.3                h8ffe710_0    conda-forge
markupsafe                1.1.1            py38h294d835_3    conda-forge
matplotlib                3.4.1                    pypi_0    pypi
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py38h294d835_1003    conda-forge
mizani                    0.7.3                    pypi_0    pypi
mkl                       2021.2.0           hb70f87d_389    conda-forge
nbclient                  0.5.3              pyhd8ed1ab_0    conda-forge
nbconvert                 6.0.7            py38haa244fe_3    conda-forge
nbformat                  5.1.3              pyhd8ed1ab_0    conda-forge
nest-asyncio              1.5.1              pyhd8ed1ab_0    conda-forge
notebook                  6.3.0              pyha770c72_1    conda-forge
numpy                     1.20.2           py38h09042cb_0    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h48faf41_0    conda-forge
openpyxl                  3.0.7                    pypi_0    pypi
openssl                   1.1.1k               h8ffe710_0    conda-forge
packaging                 20.9               pyh44b312d_0    conda-forge
palettable                3.3.0                    pypi_0    pypi
pandas                    1.2.4            py38h60cbd38_0    conda-forge
pandoc                    2.13                 h8ffe710_0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
parquet-cpp               1.5.1                         2    conda-forge
parso                     0.8.2              pyhd8ed1ab_0    conda-forge
patsy                     0.5.1                    pypi_0    pypi
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.1.2            py38h9273828_1    conda-forge
pip                       21.1.1             pyhd8ed1ab_0    conda-forge
plotly                    4.14.3                   pypi_0    pypi
plotnine                  0.8.0                    pypi_0    pypi
prometheus_client         0.10.1             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.18             pyha770c72_0    conda-forge
protobuf                  3.15.8           py38h885f38d_0    conda-forge
pyarrow                   4.0.0           py38hd38ce15_1_cpu    conda-forge
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pydeck                    0.6.2              pyh44b312d_0    conda-forge
pygments                  2.9.0              pyhd8ed1ab_0    conda-forge
pyopenssl                 20.0.1             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyrsistent                0.17.3           py38h294d835_2    conda-forge
pysocks                   1.7.1            py38haa244fe_3    conda-forge
python                    3.8.8           h7840368_0_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.8                      1_cp38    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pywin32                   300              py38h294d835_0    conda-forge
pywinpty                  1.0.1            py38hd3f51b4_0    conda-forge
pyyaml                    5.4.1            py38h294d835_0    conda-forge
pyzmq                     22.0.3           py38h09162b1_1    conda-forge
re2                       2021.04.01           h0e60522_0    conda-forge
requests                  2.25.1             pyhd3deb0d_0    conda-forge
retrying                  1.3.3                    pypi_0    pypi
s3transfer                0.4.2              pyhd8ed1ab_0    conda-forge
scikit-learn              0.24.2                   pypi_0    pypi
scipy                     1.6.3                    pypi_0    pypi
send2trash                1.5.0                      py_0    conda-forge
setuptools                49.6.0           py38haa244fe_3    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
smmap                     3.0.5              pyh44b312d_0    conda-forge
snappy                    1.1.8                ha925a31_3    conda-forge
sqlite                    3.35.5               h8ffe710_0    conda-forge
statsmodels               0.12.2                   pypi_0    pypi
streamlit                 0.81.1             pyhd8ed1ab_0    conda-forge
streamlit-ace             0.0.4                    pypi_0    pypi
streamlit-tags            1.2.2                    pypi_0    pypi
tbb                       2021.2.0             h2d74725_0    conda-forge
terminado                 0.9.4            py38haa244fe_0    conda-forge
testpath                  0.4.4                      py_0    conda-forge
threadpoolctl             2.1.0                    pypi_0    pypi
tk                        8.6.10               h8ffe710_1    conda-forge
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
toolz                     0.11.1                     py_0    conda-forge
tornado                   6.1              py38h294d835_1    conda-forge
traitlets                 5.0.5                      py_0    conda-forge
typing_extensions         3.7.4.3                    py_0    conda-forge
tzlocal                   2.1                pyh9f0ad1d_0    conda-forge
urllib3                   1.26.4             pyhd8ed1ab_0    conda-forge
validators                0.18.2             pyhd3deb0d_0    conda-forge
vc                        14.2                 hb210afc_4    conda-forge
vs2015_runtime            14.28.29325          h5e1d092_4    conda-forge
watchdog                  2.1.0            py38haa244fe_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
widgetsnbextension        3.5.1            py38haa244fe_4    conda-forge
win_inet_pton             1.1.0            py38haa244fe_2    conda-forge
wincertstore              0.2             py38haa244fe_1006    conda-forge
winpty                    0.4.3                         4    conda-forge
xz                        5.2.5                h62dcd97_1    conda-forge
yaml                      0.2.5                he774522_0    conda-forge
zeromq                    4.3.4                h0e60522_0    conda-forge
zipp                      3.4.1              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11            h62dcd97_1010    conda-forge
zstd                      1.4.9                h6255e5f_0    conda-forge
has2k1 commented 3 years ago

Please try again. I have uploaded windows files for the latest release.

In case of any issues, install numpy+mkl before any other packages

GitHunter0 commented 3 years ago

Hey @has2k1 , thanks for the quick feedback!

Now the package installed with no error message.

However, when I try to use stat_smooth(method='loess') in plotnine, I receive PlotnineError: "For loess smoothing, install 'scikit-misc'"

As regarding numpy+mkl , would it be possible to encapsulate it in a package to install with pip install without the need to download anything? These external dependencies are really problematic when sharing code, so I think it would be great if there is a simpler alternative

has2k1 commented 3 years ago

scikit-misc uses c and fortran which makes it hard to build binaries for all the OSes. For Linux & OSX, there have a build system running on Github Actions which works well though a pain when it breaks. Windows requires a different build system which I haven't been able to massage into being, I have gotten frustrated the few times I tried.

Otherwise for we rely on those wheels at https://www.lfd.uci.edu/~gohlke/pythonlibs/, which require mkl version of numpy and so the vanilla pip install wouldn't suffice.

However, when I try to use stat_smooth(method='loess') in plotnine, I receive PlotnineError: "For loess smoothing, install 'scikit-misc'"

If you managed to install numpy+mkl and scikit-misc, then I think you installed them in a different environment than the one you are using to plot.

GitHunter0 commented 3 years ago

Hi @has2k1 , thank you for the feedback. I understand, it is definitively a very challenging and frustrating task...

My concern is that it is probably a relevant barrier for a more widespread use of the amazing package which is plotnine.

Have you considered going in other direction and look for simpler alternatives? For example using statsmodels.nonparametric.smoothers_lowess.lowess() function as the backend for stat_smooth(method='loess'). That would work out-of-the-box.

If you managed to install numpy+mkl and scikit-misc, then I think you installed them in a different environment than the one you are using to plot.

I did not install numpy+mkl yet, but I will try it soon

has2k1 commented 3 years ago

Have you considered going in other direction and look for simpler alternatives? For example using statsmodels.nonparametric.smoothers_lowess.lowess() function as the backend for stat_smooth(method='loess'). That would work out-of-the-box.

Lowess is available and the default if loess is not installed. Note that with lowess you cannot get confidence intervals.

GitHunter0 commented 3 years ago

Thanks man! I did not know that was the default behavior