Unable to install Grakn KGLIB package - Conflicting dependencies
nicolamassarenti opened this issue · 10 comments
Description
Unable to install grakn-kglib
with Grakn 2.0.2 and python client grakn-client==2.0.1
.
Environment
- OS: Ubuntu 20.04
- Grakn version: Grakn server 2.0.2, Grakn console 2.0.1
- Grakn KGLIB and client-python version:
grakn-kglib==0.2.2
,grakn-client==2.0.1
. - Python version: Python 3.8.5
Steps to create the smallest reproducible scenario:
With the following packages installed:
appdirs==1.4.4
black==20.8b1
click==7.1.2
grakn-client==2.0.1
grakn-protocol==2.0.1
grpcio==1.36.1
mypy-extensions==0.4.3
numpy==1.20.2
pandas==1.2.4
pathspec==0.8.1
pkg-resources==0.0.0
protobuf==3.15.5
python-box==5.3.0
python-dateutil==2.8.1
pytz==2021.1
PyYAML==5.4.1
regex==2021.4.4
six==1.15.0
toml==0.10.2
typed-ast==1.4.3
typing-extensions==3.7.4.3
when running the command pip install grakn-kglib
I receive the following error:
ERROR: Cannot install grakn-kglib==0.1, grakn-kglib==0.2, grakn-kglib==0.2.1 and grakn-kglib==0.2.2 because these package versions have conflicting dependencies.
The conflict is caused by:
grakn-kglib 0.2.2 depends on scipy==1.3.1
grakn-kglib 0.2.1 depends on scipy==1.3.1
grakn-kglib 0.2 depends on tensorflow==1.14.0
grakn-kglib 0.1 depends on tensorflow==1.11.0
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
As you can see from this picture:
And a little above is shown also the errors:
Expected Output
I would like to install and use the kglib
package. How can I solve this problem? What is the issue?
Thanks,
Nicola
The issue I've noticed here is that KGLIB has not yet been updated to use the latest version of Grakn. The latest release of KGLIB works with Grakn 1.8, with grakn-client==1.8.0
. This needs to be updated urgently as there are huge performance gains, among other benefits, of the latest version of Grakn. But for right now that's the supported version.
I believe that TensorFlow 1.4 (which we currently require) isn't compatible with Python 3.8.
The conflict error seems to suggest that multiple versions of KGLIB are being installed, and they conflict with one another.
I suggest that you follow the requirements as listed in the readme (including Grakn and Python versions), and you can also refer to the project's requirements.txt
for which dependencies should (automatically) be installed.
PS: Grakn has been renamed to TypeDB!
Hi @jmsfltchr,
thank you for the quick answer.
The issue I've noticed here is that KGLIB has not yet been updated to use the latest version of Grakn. The latest release of KGLIB works with Grakn 1.8, with
grakn-client==1.8.0
. This needs to be updated urgently as there are huge performance gains, among other benefits, of the latest version of Grakn. But for right now that's the supported version.
This could be an issue since we decided to use version 2.0.x due to this suggestion.
Do you have any ETA about the delivery of kglib
version compatible with Grakn 2.0.x?
Does this mean that I won't be able of using kglib
until when you update the package? Or does it exist a trick for making it compatible with the latest version of Grakn (TypeDB)?
Thank you in advance,
Nicola
Do you have any ETA about the delivery of
kglib
version compatible with Grakn 2.0.x?
We should do this in the coming days to unblock users such as yourself!
Does this mean that I won't be able of using
kglib
until when you update the package? Or does it exist a trick for making it compatible with the latest version of Grakn (TypeDB)?
If you are asking regarding the version conflicts, I haven't seen the same version conflict you posted before. So, I am confident that when we upgrade the library you will have full functionality. if not we will fix it.
In the meantime I believe this branch from one of the contributors is 2.0-compatible if you need unblocking straight away!
Do you have any ETA about the delivery of
kglib
version compatible with Grakn 2.0.x?We should do this in the coming days to unblock users such as yourself!
Looking forward to use it!
Does this mean that I won't be able of using
kglib
until when you update the package? Or does it exist a trick for making it compatible with the latest version of Grakn (TypeDB)?If you are asking regarding the version conflicts, I haven't seen the same version conflict you posted before. So, I am confident that when we upgrade the library you will have full functionality. if not we will fix it.
Using python 3.7.9
I had no dependency conflicts 👍🏻
In the meantime I believe this branch from one of the contributors is 2.0-compatible if you need unblocking straight away!
I tried to build from source the repository you gave me but I still have errors (see pic below).
It seems that we are now blocked and since we already have moved to TypeDB 2.0.2 we are not able to implement the machine learning logics with your package kglib
that were of our interest.
@jmsfltchr if you have any other suggestions to make kglib
work with TypeDB 2.0.2
please, let me know it so I can test it. Otherwise I guess we (the team I'm part of) will have to wait for your release.
Nicola
Hi @nicolamassarenti, thanks for trying, but yes I suggest it's best to wait for the next release :/
We'll try to make that happen soon!
I'm not able to install KGLIB with either Python 2.7 or 3.8. It outputs the same error as above. Which version of Python is it currently compatible with?
I believe we've tried with both Python 3.6.x and 3.7.x for which it's working fine @PolKul!
@jmsfltchr ok, we are waiting.
While upgrading the package for Grakn version 2.x
, are you also going to upgrade Tensorflow to version 2.4.x
?
Hello @jmsfltchr, do you have any update about the release of the package compatible with the latest TypeDB?
Thanks!
Hi @nicolamassarenti I have a branch that's compatible, but we still have a bug to iron out before we can release. You may be able to depend on my branch directly using pip so that you can use kglib as a dependency the same way you will once it's released to PyPi