PaddlePaddle / PaddleSpeech

Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.
https://paddlespeech.readthedocs.io
Apache License 2.0
10.8k stars 1.82k forks source link

Dependencies in `setup.py` have module conflicts. #3432

Open unsatisfying opened 1 year ago

unsatisfying commented 1 year ago

What are you trying to achieve?

There are two dependencies mentioned in the setup.py file:

    "opencc",
    "opencc-python-reimplemented",

To my knowledge, there appears to be a conflict between these two packages. Due to their origin from different projects, opencc-python-reimplemented and the opencc-python 0.1 project. Both of these projects contain the module opencc/__init__.py with differing contents.

During the pip installation process, both of these packages are installed simultaneously. However, pip does not isolate these two packages, but rather installs them both in the site-packages folder. This results in the opencc/__init__.py module from the latter installed package overwriting the one installed by the previous package.

Steps to reproduce the problem

pip install paddlepaddle

What did you expect to happen?

Due to my lack of understanding of the project at the source code level, I have only analyzed its dependencies. However, I speculate whether it would be possible to eliminate unnecessary dependencies. It appears that these two conflicting projects offer similar functionality.

Indeed, it is not an ideal behavior for modules to be overwritten, even if they are not actively used or if the overwritten module is the one being called. It introduces uncertainty and can cause issues in the long run, especially if there are changes or updates to the overwritten modules in future development. It is generally recommended to avoid such conflicts and ensure that only the necessary and compatible dependencies are declared in the requirements to maintain a stable and predictable environment for the project.

Logs

No response

Environment

python 3.8.10

zxcd commented 1 year ago

Thanks for you feedback!

In this case, we used opencc to do text conversion. But in some time, pip cannot install opencc successfully, so we add opencc-python-reimplemented for easily install.

If you find any way to solve unnecessary dependencies, pls let us know.

unsatisfying commented 1 year ago

Thanks for you feedback!

In this case, we used opencc to do text conversion. But in some time, pip cannot install opencc successfully, so we add opencc-python-reimplemented for easily install.

If you find any way to solve unnecessary dependencies, pls let us know.

Thank you for your reply. At present, I only detect module conflicts and do not have a deep understanding of the code logic of the project. So there is no good solution in my mind yet.

As soon as I find some ways to fix it, I will reply to you here.

zxcd commented 1 year ago

Okay, thank you for your attention. :D

stale[bot] commented 11 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.