tanaylab / metacells

Metacells - Single-cell RNA Sequencing Analysis
MIT License
92 stars 8 forks source link

[compilation not working] install option native not found #44

Closed blackTay closed 1 year ago

blackTay commented 1 year ago

The following has happened on both linux machines that we have tried.

When running the pip install metacells command, the installation seems to work fine but upon including metacells in python, it instructs to re-compile:

ImportError: The metacells precompiled wheel is using AVX2 FMA instructions. However, AVX2 FMA is not available on this computer's processors. You can avoid the wheel using: pip install metacells --install-option=--native This will compile the metacells package on and for this computer's processors.

However, metacells does not recognise the install the advertised install option. In particular, pip install metacells --install-option=--native leads to

error: option --native not recognized

 ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7yhw1gwn/metacells/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7yhw1gwn/metacells/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-bpypaovu/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/user/.local/include/python3.8/metacells --native
         cwd: /tmp/pip-install-7yhw1gwn/metacells/
    Complete output (6 lines):
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: setup.py --help [cmd1 cmd2 ...]
       or: setup.py --help-commands
       or: setup.py cmd --help
    
    error: option --native not recognized
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7yhw1gwn/metacells/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7yhw1gwn/metacells/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-bpypaovu/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/user/.local/include/python3.8/metacells --native Check the logs for full command output.

Thank you!

The machine processor details are: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 48 bits physical, 48 bits virtual CPU(s): 64 On-line CPU(s) list: 0-63 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 4 NUMA node(s): 8 Vendor ID: AuthenticAMD CPU family: 21 Model: 2 Model name: AMD Opteron(tm) Processor 6376

orenbenkiki commented 1 year ago

Pip has changed its flags because "reasons". The flags for forcing or avoiding the use of precompiled wheels changed to --only-binary <control> and --no-binary <control> and --prefer-binary <control>. See pip install --help for details.