asyml / texar

Toolkit for Machine Learning, Natural Language Processing, and Text Generation, in TensorFlow. This is part of the CASL project: http://casl-project.ai/
https://asyml.io
Apache License 2.0
2.39k stars 374 forks source link

Dependencies in `requirements.txt` have module conflicts. #303

Open unsatisfying opened 1 year ago

unsatisfying commented 1 year ago

Background

Dependencies in requirements.txt have module conflicts.

Description

There is a dependency mentioned in the requirements.txt file: tensorflow and tensorflow-gpu. These two packages are both built from the tensorflow. They share many modules (with different contents). During the pip installation process, both of these packages will be installed simultaneously. However, pip does not isolate these two packages, but rather installs them both in the site-packages directory. This leads to the situation where modules from the later installed package overwrite the modules with the same paths installed by the earlier package.

What's more, due to the module conflicts (they both build from the same project), the tensorflow-gpu has been removed and the tensorflow now supports the GPU environment either.

Desired Change

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.