Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in installing mob_suite-3.0.0 (either by conda or pip3) - pandas EmptyDataError issue #63

Closed
bioprojects opened this issue Aug 4, 2020 · 9 comments · Fixed by #89

Comments

@bioprojects
Copy link

bioprojects commented Aug 4, 2020

Dear developers,

Thank you for developing mob-suite and making it pubic.
I'm eager to utilize it.

However, I'm facing the following errors in in installing
mob_suite-3.0.0 (either by conda or pip3).

Could you give me an advise how to fix it?
Thank you very much in advance.

#######################################################################
Error by conda
resulting in "ImportError: cannot import name 'EmptyDataError' from 'pandas.io.common'
although manual execution of "from pandas.io.common import EmptyDataError"
in the python 3 console doesn't cause any error.
#######################################################################

$ which conda
~/miniconda3/bin/conda

$ python --version
Python 3.7.3

$ conda create -c bioconda -n mob_suite mob_suite
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
ERROR conda.core.link:_execute(700): An error occurred while installing package 'bioconda::mob_suite-3.0.0-py_1'.
Rolling back transaction: done

LinkError: post-link script failed for package bioconda::mob_suite-3.0.0-py_1
location of failed script: /home/k-yahara/miniconda3/envs/mob_suite/bin/.mob_suite-post-link.sh
==> script messages <==
<None>
==> script output <==
stdout:
stderr: Traceback (most recent call last):
  File "/home/k-yahara/miniconda3/envs/mob_suite/bin/mob_init", line 7, in <module>
    from mob_suite.mob_init import main
  File "/home/k-yahara/miniconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_init.py", line 8, in <module>
    from mob_suite.blast import BlastRunner
  File "/home/k-yahara/miniconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/blast/__init__.py", line 9, in <module>
    from pandas.io.common import EmptyDataError
ImportError: cannot import name 'EmptyDataError' from 'pandas.io.common' (/home/k-yahara/miniconda3/envs/mob_suite/lib/python3.8/site-packages/pandas/io/common.py)

return code: 1

#######################################################################
Error by pip
#######################################################################

$ which pip
~/miniconda3/bin/pip

$ pip install --user mob_suite

g++ -c -pipe -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DPy_LIMITED_API=0x03040000 -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I. -I.. -I/home/k-yahara/miniconda3/include/python3.7m -I/home/k-yahara/miniconda2/include/qt -I/home/k-yahara/miniconda2/include/qt/QtMultimedia -I/home/k-yahara/miniconda2/include/qt/QtGui -I/home/k-yahara/miniconda2/include/qt/QtNetwork -I/home/k-yahara/miniconda2/include/qt/QtCore -I. -I/home/k-yahara/miniconda2/mkspecs/linux-g++ -o sipQtMultimediaQCustomAudioRoleControl.o sipQtMultimediaQCustomAudioRoleControl.cpp
/tmp/pip-install-1px41fwf/pyqt5/sip/QtMultimedia/qcustomaudiorolecontrol.sip:26:10: fatal error: qcustomaudiorolecontrol.h: No such file or directory
 #include <qcustomaudiorolecontrol.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:9092: sipQtMultimediaQCustomAudioRoleControl.o] Error 1
make[1]: Leaving directory '/tmp/tmpo14sga4w/QtMultimedia'
make: *** [Makefile:504: sub-QtMultimedia-make_first-ordered] Error 2
----------------------------------------

ERROR: Command "/home/k-yahara/miniconda3/bin/python /home/k-yahara/miniconda3/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp5gks5ebc" failed with error code 1 in /tmp/pip-install-1px41fwf/pyqt5

#####################################
Koji Yahara
Group Leader
Antimicrobial Resistance Research Center
National Institute of Infectious Diseases
Aoba-cho 4-2-1, Higashimurayama-shi, Tokyo
189-0002 Japan

@kbessonov1984
Copy link
Collaborator

kbessonov1984 commented Aug 4, 2020

Dear Koji Yahara,
Thank you for reporting this issue. I was able to reproduce your error and have a solution ready.

Conda install error MOB-Suite v3.0.0

Issue: Upon conda install the following import statement fails from pandas.io.common import EmptyDataError to run

Traceback (most recent call last):
  File "/galaxy/database/dependencies/_conda/envs/mob_suite@3.0.0/bin/mob_typer", line 7, in <module>
    from mob_suite.mob_typer import main
  File "/galaxy/database/dependencies/_conda/envs/mob_suite@3.0.0/lib/python3.7/site-packages/mob_suite/mob_typer.py", line 7, in <module>
    import mob_suite.mob_init
  File "/galaxy/database/dependencies/_conda/envs/mob_suite@3.0.0/lib/python3.7/site-packages/mob_suite/mob_init.py", line 8, in <module>
    from mob_suite.blast import BlastRunner
  File "/galaxy/database/dependencies/_conda/envs/mob_suite@3.0.0/lib/python3.7/site-packages/mob_suite/blast/__init__.py", line 9, in <module>
    from pandas.io.common import EmptyDataError
ImportError: cannot import name 'EmptyDataError' from 'pandas.io.common' (/galaxy/database/dependencies/_conda/envs/mob_suite@3.0.0/lib/python3.7/site-packages/pandas/io/common.py)

Reason: pandas>=1.1.0 code update
Solution: Recently published pandas version 1.1.0 does not haveEmptyDataErrordefinition in pandas/io/common.py. The exceptions are located as before in pandas.errors.EmptyDataError.
As a temporary solution please install pandas version that is not equal or higher that 1.1.0 (e.g. try version 1.0.5).
After conda fresh environment creation please run

conda install pandas==1.0.5 -y
conda install mob_suite==3.0.0 -y

Meanwhile will update conda package explicitly restricting higher pandas versions and subsequently update code in mob_suite/blast/__init__.py to from pandas.error import EmptyDataError

Pip installation error MOB-Suite v3.0.0

I got the same pandas related error via pip install and the remediation is again pip install pandas==1.0.5. I was not able to reproduce the qcustomaudiorolecontrol.h gcc error, but what I've found is that newest PyQt version >=5.14 has some issues so try to downgrade to version 5.11 (pip install pyqt5==5.11.3)

Successfully installed PyQt5-sip-4.19.19 pyqt5-5.11.3

@bioprojects
Copy link
Author

Thank you very much!
The temporary solution enabled me to install it using conda
in an environment.

Another environment caused the "Found conflicts!" error
when I tried "conda install pandas==1.0.5 -y".
I will try the permanent solution in the environment when it is released.

Thank you very much again.

@kbessonov1984
Copy link
Collaborator

kbessonov1984 commented Aug 5, 2020

In a couple of days a new conda build 2 for MOB-Suite version 3.0.0 will be released with the pandas version restricted range up to 1.0.5. The code fix making it compatible with any future pandas version will be released in future MOB-Suite version 3.0.1 in several of weeks. The Found conflicts environment resolution error might be due to a shared common pandas dependency by several tools in that environment that request incompatible version ranges. We recommend to have a separate conda environment for each tool.

@bioprojects
Copy link
Author

Thank you very much. I'm looking forward to the release of version 3.0.1.

In a computing cluster system, in order to "have a separate conda environment for each tool",
I executed
$ conda create -c anaconda -n pandas pandas==1.0.5
$ conda activate pandas
$ (pandas) conda create -n mob_suite mob_suite==3.0.0
but it still caused the same error. So I will try the version 3.0.1 for this environment.

Many thanks again.

@kbessonov1984
Copy link
Collaborator

Hello, yesterday a new mob_suite conda recipe was released fixing the pandas library issue. To install it simply run again conda install -c bioconda mob_suite and version 3.0.0 build 2 should be installed.

With respect to separate environments I meant that it is better to have separate environment for each tool like mob-suite, spades assembler, etc. (not for pandas library).

The release of version 3.0.1 will be not immediate so I advise to use current updated conda environment. Install via pip still needs pip install pandas==1.0.5 step before mob_suite install. This will be fixed in the 3.0.1 releasae

@kbessonov1984 kbessonov1984 changed the title Error in installing mob_suite-3.0.0 (either by conda or pip3) Error in installing mob_suite-3.0.0 (either by conda or pip3) - pandas EmptyDataError issue Nov 23, 2020
@tseemann
Copy link

tseemann commented Dec 7, 2020

Will mob_suite ever support pands>=1.1 ?

@kbessonov1984
Copy link
Collaborator

kbessonov1984 commented Dec 8, 2020

@tseemann starting version 3.0.1 pandas version 1.1 and above is compatible as we moved EmptyDataFrame exception import from pandas.errors module (and we expect all future versions will work too). We just restricted the version to 1.0.5 in case pandas developers will modify something else in their code breaking the tool as we saw happening in pandas version 1.1. Is there any particular interest in making pandas version range be broader?

@caizhangbin
Copy link

Hi, I installed the software using pip but it gave me the EmptyDataError when running the program. Pandas version was 2.1.0. any solution?

@kbessonov1984
Copy link
Collaborator

Yes, we do not support pandas 2.0 and above. Downgrade to version 1.5.3 inclusive or lower and all issues should disappear. This pandas version range is also in conda recipe.

To support pandas 3.0 (that would be released soon), 2.0 and 1.0 we would require serious code overhaul as pandas library changes quite a lot between releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants