ibayer / fastFM

fastFM: A Library for Factorization Machines
http://ibayer.github.io/fastFM
Other
1.08k stars 204 forks source link

Failure to install on Python3.8 #153

Open ogencoglu opened 4 years ago

ogencoglu commented 4 years ago

I am getting the following error with pip install on python3.8.

ERROR: Command errored out with exit status 1: command: /usr/local/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5opxoow3/fastFM/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5opxoow3/fastFM/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-record-28phucvr/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.8/fastFM

ibayer commented 4 years ago

@ogencoglu

Thanks for the feedback 3.8 is currently not supported. We are working on a complete rewrite which will bring 3.8 support and much more.

mohelm commented 4 years ago

@ibayer

first, many thanks for the cool library

do you know for when the rewrite you mean is targeted? thx!

ibayer commented 4 years ago

@mohelm We made good progress but currently all free resources go into a public service covid19 related project. Feel free to ping me again in a few week, I should know more by then.

What features are you specific looking for, is it just the 3.8 support? We considering to release a limited beta version to shorten the time to the full release a bit.

mohelm commented 4 years ago

@ibayer : many thanks for your reply. it is very commendable that you devote your resources towards helping with the covid19 issue. Thanks!

regarding fastFM: yes, I actually got it to work with Python 3.8 (on macOS Catalina) using the following "installation scipt".

git clone --recursive https://github.com/ibayer/fastFM.git <destination>
cd <destination>/fastFM
make TARGET=HASWELL
cd - # Back to actual project
poetry run pip install <destination>/fastFM

I then also have simply "current" versions of the dependencies (cython, scipy etc.) in the actual project. However, I do not manage to install it via pip install fastFM, so it is not particularly beautiful (also with a view on CI/CD pipelines), and I am very much interested in a version that would work with pip.

Regarding the beta that would be fantastic. Maybe I could also provide some help in the form of feedback etc then.

Thanks again and all the best Moritz

QFireball commented 3 years ago

INSTALL MANUAL FOR UBUNTU WITH MODERN PYTHON 3.8:

I would like to share solution the same problem in Ubuntu 20.04.1 (x64) and python 3.8.5, DELL notebook. OS is installed on VirtualBox 6.1.18 on Windows 10 (host-OS). I spent 2 days for it. Maybe someone will save his/her time. And thanks to @mohelm for his comment above, but it worked not completelly. And I have NOT-Mac computer. pip install still doesn't work.

I built fastFM from sources.

  1. cd folder where to download git sources from git.
  2. git clone --recursive http://github.com/ibayer/fastFM.git .
  3. make TARGET=NEHALEM

Library should be built completely without errors.

Install it:

python setup.py install Library now should be installed without errors.

Restart service Jupyter notebook if it was working. I had an error if I import lib after installation immediatelly.

Now, I can see fastFM in list pip list | grep fastFM

You can use it in python code:

import fastFM

Good luck!

zychen423 commented 3 years ago

Hi,

I am facing a similar issue and methods above cannot solve my problem.

I try to install fastFM on an M1 mac with python3.8 but fail. Although following methods to make and install from source can install fastFM successfully, I found the following error when I run the code:

AttributeError: module 'ffm' has no attribute 'ffm_als_fit'

Does anyone managed to get it work on m1 with python 3.8?

louisabraham commented 1 year ago

@zychen423 how were you able to compile? When running make on macOS m1, I get make[3]: *** No rule to make target../kernel/arm64/amin.S', needed by samin_k.o'. Stop.

harshvardhaniimi commented 1 year ago

Any updates on this? Would love to see a version for Python 3.9+ as well.