Code Monkey home page Code Monkey logo

Comments (14)

kuelumbus avatar kuelumbus commented on September 1, 2024 5

I just uploaded the recent RDKit version to https://pypi.org/project/rdkit/. You should now be able to install RDKit using

pip install rdkit

I am planning to keep the repos rdkit-pypi and rdkit at PyPi in sync for some time but retire rdkit-pypi in the future.

from rdkit-pypi.

greglandrum avatar greglandrum commented on September 1, 2024 3

awesome. Thanks @kuelumbus

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024 1

That said, it would still be nice to be able to pip install rdkit so I think asking @greglandrum about that is a good idea.

from rdkit-pypi.

greglandrum avatar greglandrum commented on September 1, 2024 1

Ha! I see you have already done so. :-)

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

This is a good point. I believe the best solution is to get access to rdkit on PyPi. I believe the maintainer is Greg (from the RDKit core team). I will contact him.

I am not sure though if this will solve the issue. I do not have much experience with Conda. Can you please try to install a python package (numpy or so that has the same name) with conda and pip (i.e., the pip in the conda environment). Do they coexist? If so this would not help. I assume Conda always picks the conda-forge version over the PyPi version.

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024

I see similar behavior with numpy, so maybe the best solution is just to avoid using both conda and pip :)

pip list:

numpy       1.22.4

conda list:

numpy                     1.22.4                   pypi_0    pypi
numpy-base                1.22.3           py39h3b1a694_0

and:

>>> np.__version__
'1.22.3'

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024

@kuelumbus actually I think numpy is a special case due to its complexity. For a simpler package like seaborn there does not appear to be any conflict (although conda shows the wrong version) as there is only a single package name.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

@kuelumbus actually I think numpy is a special case due to its complexity. For a simpler package like seaborn there does not appear to be any conflict (although conda shows the wrong version) as there is only a single package name.

Does this mean that even if RDKit would have the same name, it is possible to have a conda and pip version installed in one conda environment? (I assume conda installs packages to a different directory than pip.)

Also, why do you have two rdkit versions installed in one conda environment (or how did this happen)? Is this a standard case conda users end up with?

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024

Does this mean that even if RDKit would have the same name, it is possible to have a conda and pip version installed in one conda environment? (I assume conda installs packages to a different directory than pip.)

No, you'll just have one install. Conda and pip both install packages in .../site-packages/, but they store their metadata separately so the version shown by conda|pip list could be different even though they are pointing to the same source files.

Also, why do you have two rdkit versions installed in one conda environment (or how did this happen)? Is this a standard case conda users end up with?

That's a contrived case for illustration, but it could happen if users install packages that depend on rdkit from both sources.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

Thanks for clarifying. I believe the only thing that I can do is to rename the package on PyPi to rdkit. But it seems to me the best solution is to use either conda or pip and don't mix them.

from rdkit-pypi.

greglandrum avatar greglandrum commented on September 1, 2024

That said, it would still be nice to be able to pip install rdkit so I think asking @greglandrum about that is a good idea.

@kuelumbus I am happy to do this; send me email and we can figure out how to do the transfer

from rdkit-pypi.

C-nit avatar C-nit commented on September 1, 2024

Came here to suggest using rdkit as distribution name for the wheel releases. I'm super happy to see it happening :)

Developers being able to do packaging depending simply on rdkit right away set's them up for a future where the conda and pip installs are properly aware of each other:

As @skearnes was saying with conda and pip install to the same location in site-packages. This seems weird but if you consider the second install as an update it makes sense. The problem is that the tools might not be properly aware of the existing version.

From conda side there is a configuration that will fix this with the new distribution name: https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/pip-interoperability.html

However most of the time the pip installs come after the conda, and here the problem is coming from rdkit not installing the package properly. It's missing distribution info. Long story short the problem is that after the conda install alone, pip list doesn't show it.

I came across the issue with conda+pip before and commented on the situation in the conversation on an older PR that was about packaging: rdkit/rdkit#2690 (comment)

TL;DR
Sorry for the long message and back seat commenting. I just hope to make all aware that moving the pypi name is really great but only half the fix. Until the rdkit source install (conda) is not fixed, pip will continue to always overwrite.

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024

Thanks @kuelumbus and @greglandrum! I'll send a PR soon to update the RDKit installation docs.

from rdkit-pypi.

skearnes avatar skearnes commented on September 1, 2024

Ah I see @kuelumbus already submitted a PR (rdkit/rdkit#5373); thanks!

from rdkit-pypi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.