sdv-dev / SDV

Synthetic data generation for tabular data
https://docs.sdv.dev/sdv
Other
2.32k stars 305 forks source link

Broken setuptools dependency in 1.0.0 (potentially before too?) #1348

Open HarrisonWilde opened 1 year ago

HarrisonWilde commented 1 year ago

Environment Details

Please indicate the following details about the environment in which you found the bug:

Error Description

I can install the package fine, but upon importing like so:

from sdv.single_table import TVAESynthesizer

I get:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/harrisonwilde/.venv/test/lib/python3.10/site-packages/sdv/single_table/__init__.py", line 3, in <module>
    from sdv.single_table.copulagan import CopulaGANSynthesizer
  File "/Users/harrisonwilde/.venv/test/lib/python3.10/site-packages/sdv/single_table/copulagan.py", line 7, in <module>
    from sdv.single_table.copulas import GaussianCopulaSynthesizer
  File "/Users/harrisonwilde/.venv/test/lib/python3.10/site-packages/sdv/single_table/copulas.py", line 15, in <module>
    from sdv.single_table.base import BaseSingleTableSynthesizer
  File "/Users/harrisonwilde/.venv/test/lib/python3.10/site-packages/sdv/single_table/base.py", line 17, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

I believe you want to add setuptools to the dependencies of the project to fix this, I know that venv's come with it pre-installed but in some situations this will not be the case.

Steps to reproduce

See above, this should be done in a clean python env, i.e. one without setuptools installed (I think this is the assumption that to me is wrongly made here).

npatki commented 1 year ago

Hi @HarrisonWilde, I understand what's happening.

Before we make any decisions, it would be nice to reference any other software that has had this issue and/or figure out the Python-recommended approach for this. If you come across any resources, please let us know! Otherwise, our team can look into this and update the dependencies.

Note that we have a general issue #1368 for dependency management so may consider it as part of that overall workstream.