mortada/fredapi

Install in virtualenv fails if pandas is not installed

jbrockmendel opened this issue · 4 comments

Putting both pandas and fredapi in a "requirements.txt" file and then installing in a fresh virtualenv leads to:

Collecting fredapi (from -r requirements.txt (line 15))
  Using cached fredapi-0.4.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-ej66i5se/fredapi/setup.py", line 3, in <module>
        from fredapi.version import version as __version__
      File "/tmp/pip-build-ej66i5se/fredapi/fredapi/__init__.py", line 3, in <module>
        from fredapi.fred import Fred
      File "/tmp/pip-build-ej66i5se/fredapi/fredapi/fred.py", line 14, in <module>
        import pandas as pd
    ImportError: No module named 'pandas'

Can the version.py file go outside the fredapi directory?

yes please fix this! reason is that fredapi.init has from fredapi.fred import Fred which means fred needs to be importable, which is not since pandas is not available.

i think several other projects solve the same situation in a way that allows setup.py to get the project's version without requiring for the whole module to be importable at such an early stage of the virtualenv creation

thanks for reporting this, I don't use virtualenv so didn't realize this problem, I think the problem is that setup.py is importing fredapi.version.py which in turn loads fredapi/__init__.py and that leads to the dependency requirement.

I will push a fix today

Please check if the latest release 0.4.1 https://github.com/mortada/fredapi/releases/tag/v0.4.1 fixes this issue for you. Thanks!

yup that worked just fine, thanks!!!