simon-anders / htseq

HTSeq is a Python library to facilitate processing and analysis of data from high-throughput sequencing (HTS) experiments.
https://htseq.readthedocs.io/en/release_0.11.1/
GNU General Public License v3.0
122 stars 77 forks source link

Cannot install over pip #92

Closed ValerieMarot closed 4 years ago

ValerieMarot commented 4 years ago

Hi,

have been trying to install htseq all day and I just can't seem to make it work. I've posted my question on stackoverflow: https://stackoverflow.com/questions/59141485/install-python-htseq-package-in-specific-path-with-apt-get

But for some more context the output when I run pip install, see the attached file. There seems to be some issue with Cython but I just cannot figure out what is missing.

I'd be very gratefull for any help!

output.txt

gmstanle commented 4 years ago

I get a similar error. I am installing on Linux (Ubuntu 16.04) in a conda environment with Python=3.7.6 and pip=20.0.2 using pip install HTSeq. I think it has something to do with the gnu c compiler but I'm not sure exactly what it is.


Collecting HTSeq
  Downloading HTSeq-0.11.2.tar.gz (611 kB)
     |████████████████████████████████| 611 kB 20.6 MB/s 
Requirement already satisfied: numpy in /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages (from HTSeq) (1.17.5)
Requirement already satisfied: pysam>=0.9.0 in /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages (from HTSeq) (0.15.4)
Building wheels for collected packages: HTSeq
  Building wheel for HTSeq (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-iojgnko6/HTSeq/setup.py'"'"'; __file__='"'"'/tmp/pip-install-iojgnko6/HTSeq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-9ncn_z5n
       cwd: /tmp/pip-install-iojgnko6/HTSeq/
  Complete output (98 lines):
  symlinking folders for python3
  running bdist_wheel
  running build
  running build_py
  running preprocess
  cythonizing
  Cython version 0.23.4
  SWIGging
  correcting SWIG for python3
  RefactoringTool: Skipping optional fixer: buffer
  RefactoringTool: Skipping optional fixer: idioms
  RefactoringTool: Skipping optional fixer: set_literal
  RefactoringTool: Skipping optional fixer: ws_comma
  RefactoringTool: No changes to python3/src/StepVector.py
  RefactoringTool: Files that need to be modified:
  RefactoringTool: python3/src/StepVector.py
  moving swigged .py module
  done
  creating build
  creating build/lib.linux-x86_64-3.7
  creating build/lib.linux-x86_64-3.7/HTSeq
  copying HTSeq/__init__.py -> build/lib.linux-x86_64-3.7/HTSeq
  copying HTSeq/_HTSeq_internal.py -> build/lib.linux-x86_64-3.7/HTSeq
  copying HTSeq/StepVector.py -> build/lib.linux-x86_64-3.7/HTSeq
  copying HTSeq/_version.py -> build/lib.linux-x86_64-3.7/HTSeq
  creating build/lib.linux-x86_64-3.7/HTSeq/scripts
  copying HTSeq/scripts/__init__.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
  copying HTSeq/scripts/qa.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
  copying HTSeq/scripts/count.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
  running build_ext
  building 'HTSeq._HTSeq' extension
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/src
  /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/x86_64-conda_cos6-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include -fPIC -I/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages/numpy/core/include -I/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include/python3.7m -c src/_HTSeq.c -o build/temp.linux-x86_64-3.7/src/_HTSeq.o -w
  src/_HTSeq.c: In function '__Pyx_ExceptionSave':
  src/_HTSeq.c:44420:21: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
       *type = tstate->exc_type;
                       ^~~~~~~~
                       curexc_type
  src/_HTSeq.c:44421:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
       *value = tstate->exc_value;
                        ^~~~~~~~~
                        curexc_value
  src/_HTSeq.c:44422:19: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
       *tb = tstate->exc_traceback;
                     ^~~~~~~~~~~~~
                     curexc_traceback
  src/_HTSeq.c: In function '__Pyx_ExceptionReset':
  src/_HTSeq.c:44434:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
       tmp_type = tstate->exc_type;
                          ^~~~~~~~
                          curexc_type
  src/_HTSeq.c:44435:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
       tmp_value = tstate->exc_value;
                           ^~~~~~~~~
                           curexc_value
  src/_HTSeq.c:44436:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
       tmp_tb = tstate->exc_traceback;
                        ^~~~~~~~~~~~~
                        curexc_traceback
  src/_HTSeq.c:44437:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
       tstate->exc_type = type;
               ^~~~~~~~
               curexc_type
  src/_HTSeq.c:44438:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
       tstate->exc_value = value;
               ^~~~~~~~~
               curexc_value
  src/_HTSeq.c:44439:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
       tstate->exc_traceback = tb;
               ^~~~~~~~~~~~~
               curexc_traceback
  src/_HTSeq.c: In function '__Pyx_GetException':
  src/_HTSeq.c:44482:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
       tmp_type = tstate->exc_type;
                          ^~~~~~~~
                          curexc_type
  src/_HTSeq.c:44483:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
       tmp_value = tstate->exc_value;
                           ^~~~~~~~~
                           curexc_value
  src/_HTSeq.c:44484:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
       tmp_tb = tstate->exc_traceback;
                        ^~~~~~~~~~~~~
                        curexc_traceback
  src/_HTSeq.c:44485:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
       tstate->exc_type = local_type;
               ^~~~~~~~
               curexc_type
  src/_HTSeq.c:44486:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
       tstate->exc_value = local_value;
               ^~~~~~~~~
               curexc_value
  src/_HTSeq.c:44487:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
       tstate->exc_traceback = local_tb;
               ^~~~~~~~~~~~~
               curexc_traceback
  error: command '/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/x86_64-conda_cos6-linux-gnu-cc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for HTSeq
  Running setup.py clean for HTSeq
Failed to build HTSeq
Installing collected packages: HTSeq
    Running setup.py install for HTSeq ... error
    ERROR: Command errored out with exit status 1:
     command: /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-iojgnko6/HTSeq/setup.py'"'"'; __file__='"'"'/tmp/pip-install-iojgnko6/HTSeq/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-cu6z1f_s/install-record.txt --single-version-externally-managed --compile --install-headers /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include/python3.7m/HTSeq
         cwd: /tmp/pip-install-iojgnko6/HTSeq/
    Complete output (98 lines):
    symlinking folders for python3
    running install
    running build
    running build_py
    running preprocess
    cythonizing
    Cython version 0.23.4
    SWIGging
    correcting SWIG for python3
    RefactoringTool: Skipping optional fixer: buffer
    RefactoringTool: Skipping optional fixer: idioms
    RefactoringTool: Skipping optional fixer: set_literal
    RefactoringTool: Skipping optional fixer: ws_comma
    RefactoringTool: No changes to python3/src/StepVector.py
    RefactoringTool: Files that need to be modified:
    RefactoringTool: python3/src/StepVector.py
    moving swigged .py module
    done
    creating build
    creating build/lib.linux-x86_64-3.7
    creating build/lib.linux-x86_64-3.7/HTSeq
    copying HTSeq/__init__.py -> build/lib.linux-x86_64-3.7/HTSeq
    copying HTSeq/_HTSeq_internal.py -> build/lib.linux-x86_64-3.7/HTSeq
    copying HTSeq/StepVector.py -> build/lib.linux-x86_64-3.7/HTSeq
    copying HTSeq/_version.py -> build/lib.linux-x86_64-3.7/HTSeq
    creating build/lib.linux-x86_64-3.7/HTSeq/scripts
    copying HTSeq/scripts/__init__.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
    copying HTSeq/scripts/qa.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
    copying HTSeq/scripts/count.py -> build/lib.linux-x86_64-3.7/HTSeq/scripts
    running build_ext
    building 'HTSeq._HTSeq' extension
    creating build/temp.linux-x86_64-3.7
    creating build/temp.linux-x86_64-3.7/src
    /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/x86_64-conda_cos6-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include -fPIC -I/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages/numpy/core/include -I/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include/python3.7m -c src/_HTSeq.c -o build/temp.linux-x86_64-3.7/src/_HTSeq.o -w
    src/_HTSeq.c: In function '__Pyx_ExceptionSave':
    src/_HTSeq.c:44420:21: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
         *type = tstate->exc_type;
                         ^~~~~~~~
                         curexc_type
    src/_HTSeq.c:44421:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
         *value = tstate->exc_value;
                          ^~~~~~~~~
                          curexc_value
    src/_HTSeq.c:44422:19: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
         *tb = tstate->exc_traceback;
                       ^~~~~~~~~~~~~
                       curexc_traceback
    src/_HTSeq.c: In function '__Pyx_ExceptionReset':
    src/_HTSeq.c:44434:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
         tmp_type = tstate->exc_type;
                            ^~~~~~~~
                            curexc_type
    src/_HTSeq.c:44435:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
         tmp_value = tstate->exc_value;
                             ^~~~~~~~~
                             curexc_value
    src/_HTSeq.c:44436:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
         tmp_tb = tstate->exc_traceback;
                          ^~~~~~~~~~~~~
                          curexc_traceback
    src/_HTSeq.c:44437:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
         tstate->exc_type = type;
                 ^~~~~~~~
                 curexc_type
    src/_HTSeq.c:44438:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
         tstate->exc_value = value;
                 ^~~~~~~~~
                 curexc_value
    src/_HTSeq.c:44439:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
         tstate->exc_traceback = tb;
                 ^~~~~~~~~~~~~
                 curexc_traceback
    src/_HTSeq.c: In function '__Pyx_GetException':
    src/_HTSeq.c:44482:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
         tmp_type = tstate->exc_type;
                            ^~~~~~~~
                            curexc_type
    src/_HTSeq.c:44483:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
         tmp_value = tstate->exc_value;
                             ^~~~~~~~~
                             curexc_value
    src/_HTSeq.c:44484:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
         tmp_tb = tstate->exc_traceback;
                          ^~~~~~~~~~~~~
                          curexc_traceback
    src/_HTSeq.c:44485:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
         tstate->exc_type = local_type;
                 ^~~~~~~~
                 curexc_type
    src/_HTSeq.c:44486:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
         tstate->exc_value = local_value;
                 ^~~~~~~~~
                 curexc_value
    src/_HTSeq.c:44487:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
         tstate->exc_traceback = local_tb;
                 ^~~~~~~~~~~~~
                 curexc_traceback
    error: command '/home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/x86_64-conda_cos6-linux-gnu-cc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-iojgnko6/HTSeq/setup.py'"'"'; __file__='"'"'/tmp/pip-install-iojgnko6/HTSeq/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-cu6z1f_s/install-record.txt --single-version-externally-managed --compile --install-headers /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/include/python3.7m/HTSeq Check the logs for full command output.```
gmstanle commented 4 years ago

See here - it seems like it is a Python 3.7/Cython issue.

The version of Cython I was using previously was 0.23.4. After updating to cython=0.29.5 using conda install cython (version conda=4.8.5), HTSeq now installs!

pip install HTSeq
Collecting HTSeq
  Using cached HTSeq-0.11.2.tar.gz (611 kB)
Requirement already satisfied: numpy in /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages (from HTSeq) (1.17.5)
Requirement already satisfied: pysam>=0.9.0 in /home/geoffstanley/anaconda3/envs/pacbio-sc-analysis/lib/python3.7/site-packages (from HTSeq) (0.15.4)
Building wheels for collected packages: HTSeq
  Building wheel for HTSeq (setup.py) ... done
  Created wheel for HTSeq: filename=HTSeq-0.11.2-cp37-cp37m-linux_x86_64.whl size=316463 sha256=acaaa9ff00207233bad0e1418b823abdec59d0c0e7036b047adafda3e1cd3145
  Stored in directory: /home/geoffstanley/.cache/pip/wheels/0b/f5/ab/79a07ad22739b7aed4746f374406560547e91e29058e261dcc
Successfully built HTSeq
Installing collected packages: HTSeq
Successfully installed HTSeq-0.11.2
gmstanle commented 4 years ago

It would probably be good to update the HTSeq requirements to ensure compatibility of cython with the python version @simon-anders

iosonofabio commented 4 years ago

Hey Geoff, as you know I've been mostly maintaining this project for a few years by now. I'll have a look today or tomorrrow. Thanks guys for reporting!

gmstanle commented 4 years ago

Actually I had no idea! Very cool. You could potentially just add the suggestion to run pip install cython or conda install cython to the readthedocs page, since it might be a common issue.

iosonofabio commented 4 years ago

Thank you, yes I'll try to clean up the docs and requirements a little!

iosonofabio commented 4 years ago

I pushed a new release for this (0.11.3). Cython should not be necessary as we have virtual machines making wheels for linux and OSX. Please reopen if it still breaks.