jdtuck / fdasrsf_python

elastic fda python code
http://research.tetonedge.net
BSD 3-Clause "New" or "Revised" License
52 stars 18 forks source link

Error on installation #6

Closed vnmabus closed 3 years ago

vnmabus commented 3 years ago

I was trying to install your project in order to see if I can modify scikit-fda to add this project as a dependency instead of duplicating the functionality, as it seems that this project is no longer inactive.

However, when I tried to install your project using pip, the following exception was raised:

Collecting fdasrsf
  Using cached fdasrsf-2.1.4.tar.gz (1.6 MB)
  Installing build dependencies ... done
  WARNING: Missing build requirements in pyproject.toml for fdasrsf from https://files.pythonhosted.org/packages/68/dd/f34f9ac89fb383d05db4feb88ad50851201ad90e49b8e7caf1081263d7ed/fdasrsf-2.1.4.tar.gz#sha256=2ad3d83779e703ccc664c0eabf50fdac77e204ebb1a715a60d6782bee19bb691.
  WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'setuptools>=40.8.0' and 'wheel'.
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "...\lib\site-packages\pip\_internal\cli\base_command.py", line 216, in _main
    status = self.run(options, args)
  File "...\lib\site-packages\pip\_internal\cli\req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "...\lib\site-packages\pip\_internal\commands\install.py", line 325, in run
    reqs, check_supported_wheels=not options.target_dir
  File "...\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 183, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "...\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 388, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "...\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 340, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(req)
  File "...\lib\site-packages\pip\_internal\operations\prepare.py", line 483, in prepare_linked_requirement
    req, self.req_tracker, self.finder, self.build_isolation,
  File "...\lib\site-packages\pip\_internal\operations\prepare.py", line 91, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "...\lib\site-packages\pip\_internal\distributions\sdist.py", line 38, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "...\lib\site-packages\pip\_internal\distributions\sdist.py", line 96, in _setup_isolation
    reqs = backend.get_requires_for_build_wheel()
  File "...\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 161, in get_requires_for_build_wheel
    'config_settings': config_settings
  File "...\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 265, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "...\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 86, in _build_backend
    obj = import_module(mod_path)
  File "...\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 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools'

Can you please have a look at it?

vnmabus commented 3 years ago

Ok, I see that this problem was solved in 68493fe845f3874825ba50932c2ea91d779b314f, but the released version is older than this commit. Please, release a new version when you can.

jdtuck commented 3 years ago

I have been working on one more feature and will try to release it when I can. Also, this project has never been inactive and I have been working on it since the first methods were developed under my dissertation and other work by Anuj Srivastava et al. If you are going to add functionality to scikit-fda via this package I would love to be involved.

vnmabus commented 3 years ago

Yes, of course! We added support for elastic registration in scikit-fda during the course 2018-2019. At that time your latest release was from 2013, and we were unsure if the project was still alive. Also, your GPL license was incompatible with our BSD license, so we reimplemented most methods, vendoring only your C implementation of coptimum_reparam found in https://github.com/jdtuck/ElasticFDA.jl, which is under MIT license. I think that the developer who did that emailed you for permission.

My intention now was to depend directly on this package, eliminating duplicated efforts, although the GPL license is still a problem (AFAIK, we could not depend on your package without relicensing ours to GPL, and that is not going to happen).

I was trying to evaluate if making the dependency explicit was possible and worthwhile, so I tried to install your package to see if it was possible to use it directly, and then I found this bug.

jdtuck commented 3 years ago

So I can change the license, back when the decision was made, GPL was the best option. I am in more favor of MIT or BSD if that would make things easier for you. Also, I have been meaning to have you add more correct references for the elastic registration to give more original authors credit.

jdtuck commented 3 years ago

Also as I sit here thinking about it, I am wondering if you depending on this is a good option or we merge? Thoughts here?

vnmabus commented 3 years ago

I think right now it is better to create a dependency, as not all of your functionality is used in scikit-fda, and also the interface is different (we have objects that represent functions, while you are using matrices directly, and we also try to conform to scikit-learn standards in order to reuse their pipelines and hyperparameter optimization classes).

I believe that it is useful to provide wrappers in scikit-fda for applying your methods to our objects, using this interface. If someday we have wrappers for all your functionality, maybe then merging would make sense, but probably a dependency is more useful right now.

jdtuck commented 3 years ago

Okay sounds good, as you make wrappers with different functionality, please let me know.

jdtuck commented 3 years ago

I had time this morning and release 2.1.7, let me know if you have any issues

vnmabus commented 3 years ago

Now, there is a different error (in Windows at least):

Building wheels for collected packages: fdasrsf
  Building wheel for fdasrsf (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\python.exe' 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'E:\AppData\Local\Temp\tmpvh4_ff0e'
       cwd: E:\AppData\Local\Temp\pip-install-uh23es1n\fdasrsf
  Complete output (90 lines):
  generating build\_DP.c
  (already up-to-date)
  running bdist_wheel
  running build
  running build_py
  creating build\lib.win-amd64-3.7
  creating build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\boxplots.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_stats.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPCA.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPLS.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geodesic.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geometry.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\pcr_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\plot_style.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\time_warping.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\tolerance.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\umap_metric.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\utility_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\__init__.py -> build\lib.win-amd64-3.7\fdasrsf
  running build_ext
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  not modified: 'build\\_DP.c'
  E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Optimized (vendor) Blas libraries are not found.
      Falls back to netlib Blas library which has worse performance.
      A better performance should be easily gained by switching
      Blas library.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) libraries not found.
      Directories to search for the libraries can be specified in the
      numpy/distutils/site.cfg file (section [blas]) or by setting
      the BLAS environment variable.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) sources not found.
      Directories to search for the sources can be specified in the
      numpy/distutils/site.cfg file (section [blas_src]) or by setting
      the BLAS_SRC environment variable.
    if self._calc_info(blas):
  Traceback (most recent call last):
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
      main()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 205, in build_wheel
      metadata_directory)
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\setuptools\build_meta.py", line 217, in build_wheel
      wheel_directory, config_settings)
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\setuptools\build_meta.py", line 202, in _build_with_temp_dir
      self.run_setup()
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\setuptools\build_meta.py", line 254, in run_setup
      self).run_setup(setup_script=setup_script)
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\setuptools\build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 149, in <module>
      'Programming Language :: Python :: 3.6',
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 290, in run
      self.run_command('build')
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\Cython\Distutils\old_build_ext.py", line 186, in run
      _build_ext.build_ext.run(self)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build_ext.py", line 340, in run
      self.build_extensions()
    File "setup.py", line 64, in build_extensions
      build_ext_with_blas.build_extensions(self)
    File "E:\AppData\Local\Temp\pip-build-env-4oxx9xis\overlay\Lib\site-packages\findblas\distutils.py", line 28, in build_extensions
      raise ValueError(txt)
  ValueError: Found MKL library at:
  E:/Programas/Utilidades/Lenguajes/Miniconda/envs/fda/Library/bin\mkl_rt.dll
  However, it is missing .lib files - please install them with 'pip install mkl-devel'.
  ----------------------------------------
  ERROR: Failed building wheel for fdasrsf
Failed to build fdasrsf
ERROR: Could not build wheels for fdasrsf which use PEP 517 and cannot be installed directly

I could try installing the suggested package, but maybe it should be a dependency.

jdtuck commented 3 years ago

yes forgot to add that one

jdtuck commented 3 years ago

okay try it now

vnmabus commented 3 years ago

Still not working, with the same error.

jdtuck commented 3 years ago

can you give me the output as that makes no sense to what the change was

vnmabus commented 3 years ago

The full output is the following

Collecting fdasrsf
  Using cached fdasrsf-2.1.8.tar.gz (3.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.19.1)
Requirement already satisfied: Cython in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.29.20)
Requirement already satisfied: scipy in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.5.0)
Requirement already satisfied: six in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.15.0)
Requirement already satisfied: pyparsing in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (2.4.7)
Collecting patsy
  Using cached patsy-0.5.1-py2.py3-none-any.whl (231 kB)
Requirement already satisfied: numba in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.51.0)
Collecting mkl-devel
  Using cached mkl_devel-2018.0.3-py2.py3-none-any.whl (5.4 kB)
Requirement already satisfied: cffi>=1.0.0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.14.2)
Requirement already satisfied: joblib in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.15.1)
Requirement already satisfied: matplotlib in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (3.3.1)
Processing c:\users\carlos\appdata\local\pip\cache\wheels\7a\6c\10\350997777fee02ee366b4c27839ccd405e3413d2aad194dd50\findblas-0.1.16-py3-none-any.whl
Requirement already satisfied: tqdm in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (4.48.2)
Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from numba->fdasrsf) (0.34.0)
Requirement already satisfied: setuptools in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from numba->fdasrsf) (49.6.0.post20200814)
Collecting mkl-include==2018.0.3
  Using cached mkl_include-2018.0.3-py2.py3-none-win_amd64.whl (1.0 MB)
Collecting mkl==2018.0.3
  Using cached mkl-2018.0.3-py2.py3-none-win_amd64.whl (228.2 MB)
Requirement already satisfied: pycparser in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from cffi>=1.0.0->fdasrsf) (2.20)
Requirement already satisfied: python-dateutil>=2.1 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (2.8.1)
Requirement already satisfied: certifi>=2020.06.20 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (2020.6.20)
Requirement already satisfied: pillow>=6.2.0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (7.1.2)
Requirement already satisfied: cycler>=0.10 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (1.2.0)
Collecting intel-openmp==2018.0.3
  Using cached intel_openmp-2018.0.3-py2.py3-none-win_amd64.whl (1.9 MB)
Building wheels for collected packages: fdasrsf
  Building wheel for fdasrsf (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\python.exe' 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'E:\AppData\Local\Temp\tmp6l571894'
       cwd: E:\AppData\Local\Temp\pip-install-hdxajksl\fdasrsf
  Complete output (90 lines):
  generating build\_DP.c
  (already up-to-date)
  running bdist_wheel
  running build
  running build_py
  creating build\lib.win-amd64-3.7
  creating build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\boxplots.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_stats.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPCA.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPLS.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geodesic.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geometry.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\pcr_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\plot_style.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\time_warping.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\tolerance.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\umap_metric.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\utility_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\__init__.py -> build\lib.win-amd64-3.7\fdasrsf
  running build_ext
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  not modified: 'build\\_DP.c'
  E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Optimized (vendor) Blas libraries are not found.
      Falls back to netlib Blas library which has worse performance.
      A better performance should be easily gained by switching
      Blas library.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) libraries not found.
      Directories to search for the libraries can be specified in the
      numpy/distutils/site.cfg file (section [blas]) or by setting
      the BLAS environment variable.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) sources not found.
      Directories to search for the sources can be specified in the
      numpy/distutils/site.cfg file (section [blas_src]) or by setting
      the BLAS_SRC environment variable.
    if self._calc_info(blas):
  Traceback (most recent call last):
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
      main()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 205, in build_wheel
      metadata_directory)
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\setuptools\build_meta.py", line 217, in build_wheel
      wheel_directory, config_settings)
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\setuptools\build_meta.py", line 202, in _build_with_temp_dir
      self.run_setup()
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\setuptools\build_meta.py", line 254, in run_setup
      self).run_setup(setup_script=setup_script)
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\setuptools\build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 150, in <module>
      'Programming Language :: Python :: 3.6',
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 290, in run
      self.run_command('build')
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\Cython\Distutils\old_build_ext.py", line 186, in run
      _build_ext.build_ext.run(self)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build_ext.py", line 340, in run
      self.build_extensions()
    File "setup.py", line 64, in build_extensions
      build_ext_with_blas.build_extensions(self)
    File "E:\AppData\Local\Temp\pip-build-env-x5sw7jhy\overlay\Lib\site-packages\findblas\distutils.py", line 28, in build_extensions
      raise ValueError(txt)
  ValueError: Found MKL library at:
  E:/Programas/Utilidades/Lenguajes/Miniconda/envs/fda/Library/bin\mkl_rt.dll
  However, it is missing .lib files - please install them with 'pip install mkl-devel'.
  ----------------------------------------
  ERROR: Failed building wheel for fdasrsf
Failed to build fdasrsf
ERROR: Could not build wheels for fdasrsf which use PEP 517 and cannot be installed directly
jdtuck commented 3 years ago

So I do not have this error in a clean environment on anaconda, saw you are using miniconda and I can finally replicate it, though it makes no sense, as it is actually install mkl-devel.

jdtuck commented 3 years ago

So this is an issue with the mkl-devel on pip versus anaconda. The current mkl-devel on pip does not have the lib files and hasn't been updated in two years, where anaconda updates it frequently. I will need to think on this

jdtuck commented 3 years ago

And this is just a windows problem as on unix systems the blas would be found from the system.

jdtuck commented 3 years ago

Okay, I think I fixed it, missed something on PEP517 install. Please let me know if it doesn't work.

vnmabus commented 3 years ago

I hate to bring bad news, but still does not work...

Collecting fdasrsf
  Using cached fdasrsf-2.1.9.tar.gz (3.6 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: six in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.15.0)
Requirement already satisfied: matplotlib in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (3.3.1)
Requirement already satisfied: tqdm in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (4.48.2)
Collecting mkl-devel
  Using cached mkl_devel-2018.0.3-py2.py3-none-any.whl (5.4 kB)
Requirement already satisfied: numpy in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.19.1)
Collecting patsy
  Using cached patsy-0.5.1-py2.py3-none-any.whl (231 kB)
Requirement already satisfied: joblib in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.15.1)
Requirement already satisfied: scipy in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.5.0)
Requirement already satisfied: Cython in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.29.20)
Requirement already satisfied: numba in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (0.51.0)
Requirement already satisfied: pyparsing in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (2.4.7)
Requirement already satisfied: cffi>=1.0.0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from fdasrsf) (1.14.2)
Processing c:\users\carlos\appdata\local\pip\cache\wheels\7a\6c\10\350997777fee02ee366b4c27839ccd405e3413d2aad194dd50\findblas-0.1.16-py3-none-any.whl
Requirement already satisfied: python-dateutil>=2.1 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (2.8.1)
Requirement already satisfied: kiwisolver>=1.0.1 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (1.2.0)
Requirement already satisfied: certifi>=2020.06.20 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (2020.6.20)
Requirement already satisfied: pillow>=6.2.0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (7.1.2)
Requirement already satisfied: cycler>=0.10 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from matplotlib->fdasrsf) (0.10.0)
Collecting mkl-include==2018.0.3
  Using cached mkl_include-2018.0.3-py2.py3-none-win_amd64.whl (1.0 MB)
Collecting mkl==2018.0.3
  Using cached mkl-2018.0.3-py2.py3-none-win_amd64.whl (228.2 MB)
Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from numba->fdasrsf) (0.34.0)
Requirement already satisfied: setuptools in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from numba->fdasrsf) (49.6.0.post20200814)
Requirement already satisfied: pycparser in e:\programas\utilidades\lenguajes\miniconda\envs\fda\lib\site-packages (from cffi>=1.0.0->fdasrsf) (2.20)
Collecting intel-openmp==2018.0.3
  Using cached intel_openmp-2018.0.3-py2.py3-none-win_amd64.whl (1.9 MB)
Building wheels for collected packages: fdasrsf
  Building wheel for fdasrsf (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\python.exe' 'E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'E:\AppData\Local\Temp\tmplon6p7ve'
       cwd: E:\AppData\Local\Temp\pip-install-70c1j1xh\fdasrsf
  Complete output (88 lines):
  generating build\_DP.c
  (already up-to-date)
  running bdist_wheel
  running build
  running build_py
  creating build\lib.win-amd64-3.7
  creating build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\boxplots.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\curve_stats.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPCA.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\fPLS.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geodesic.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\geometry.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\pcr_regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\plot_style.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\regression.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\time_warping.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\tolerance.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\umap_metric.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\utility_functions.py -> build\lib.win-amd64-3.7\fdasrsf
  copying fdasrsf\__init__.py -> build\lib.win-amd64-3.7\fdasrsf
  running build_ext
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  not modified: 'build\\_DP.c'
  E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Optimized (vendor) Blas libraries are not found.
      Falls back to netlib Blas library which has worse performance.
      A better performance should be easily gained by switching
      Blas library.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) libraries not found.
      Directories to search for the libraries can be specified in the
      numpy/distutils/site.cfg file (section [blas]) or by setting
      the BLAS environment variable.
    if self._calc_info(blas):
  E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\numpy\distutils\system_info.py:1914: UserWarning:
      Blas (http://www.netlib.org/blas/) sources not found.
      Directories to search for the sources can be specified in the
      numpy/distutils/site.cfg file (section [blas_src]) or by setting
      the BLAS_SRC environment variable.
    if self._calc_info(blas):
  Traceback (most recent call last):
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
      main()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 205, in build_wheel
      metadata_directory)
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\setuptools\build_meta.py", line 217, in build_wheel
      wheel_directory, config_settings)
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\setuptools\build_meta.py", line 202, in _build_with_temp_dir
      self.run_setup()
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\setuptools\build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 150, in <module>
      'Programming Language :: Python :: 3.6',
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 290, in run
      self.run_command('build')
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\Cython\Distutils\old_build_ext.py", line 186, in run
      _build_ext.build_ext.run(self)
    File "E:\Programas\Utilidades\Lenguajes\Miniconda\envs\fda\lib\distutils\command\build_ext.py", line 340, in run
      self.build_extensions()
    File "setup.py", line 64, in build_extensions
      build_ext_with_blas.build_extensions(self)
    File "E:\AppData\Local\Temp\pip-build-env-7iyjv948\overlay\Lib\site-packages\findblas\distutils.py", line 28, in build_extensions
      raise ValueError(txt)
  ValueError: Found MKL library at:
  E:/Programas/Utilidades/Lenguajes/Miniconda/envs/fda/Library/bin\mkl_rt.dll
  However, it is missing .lib files - please install them with 'pip install mkl-devel'.
  ----------------------------------------
  ERROR: Failed building wheel for fdasrsf
Failed to build fdasrsf
ERROR: Could not build wheels for fdasrsf which use PEP 517 and cannot be installed directly
jdtuck commented 3 years ago

Ao you mkl_rt.dll is in a weird place, can you first create a clean environment

conda create --name test and try pip install fdasrsf. The reason I ask is I tried in two different environments, python 3.7 and 3.8, on two different machines and it worked. I am really confused.

This error

Optimized (vendor) Blas libraries are not found.
      Falls back to netlib Blas library which has worse performance.
      A better performance should be easily gained by switching
      Blas library.

in yours also tells me blas has some issues.

jdtuck commented 3 years ago

so I was able to recreate on another machine trying to recreate your setup. So I have mkl-devel as a build dependency and it work s on some machines and others it won't work until someone does a pip install mkl-devel. I might just have to create the wheels myself for windows and put them on pypi. I have added them for 3.6, 3.7, and 3.8 on pypi. Let me know if it pulls the whl

jdtuck commented 3 years ago

So i build wheels for windows and are pypi, let me know if that does the trick for you.

vnmabus commented 3 years ago

I cannot test it on Windows until Monday. I was trying to call your optimum_reparam function from scikit-fda in Linux, and it works locally, but fails in Travis tests (except in Mac!?) because the mkl library is not found at runtime.

Here are the failed tests, just in case;

https://travis-ci.com/github/GAA-UAM/scikit-fda/builds/191957742

jdtuck commented 3 years ago

So linux is installing it, then not finding the mkl library after it installs, but mac does, weird.

jdtuck commented 3 years ago

So the easiest solution to get you up and running, I am going to draft a release that does not have the RBFGS method. I will refactor in a branch so it has better BLAS support. This should fix everything. The problem is its is hard to find the blas on every system easily and still not a great solution.

vnmabus commented 3 years ago

The thing is that your own tests pass, so maybe you are doing some magic in create_testenv.sh or somewhere that can be done in the installation process?

jdtuck commented 3 years ago

The magic is I install mkl-devel via pip before I install my package. This is not a great procedure.

jdtuck commented 3 years ago

I need to refactor RBFGS anyway, so I would rather have a version that is working using Dynamic Programming out and allows other packages to work with it. I will have this shortly (few hours after tests complete)

jdtuck commented 3 years ago

new release on pip, please let me know how your tests go

vnmabus commented 3 years ago

The tests now pass. I will check my windows installation on Monday, but I am pretty confident that it will work too (as the Windows tests are passing):

https://travis-ci.com/github/GAA-UAM/scikit-fda/builds/192548199

jdtuck commented 3 years ago

Awesome, please keep me informed as you write functions that depend. Also if you can let me know what branch you are doing the work in, I can help out as well

jdtuck commented 3 years ago

Or I can just look at the Travis for the branch, duh....