{"id":12831,"date":"2025-08-06T11:37:17","date_gmt":"2025-08-06T10:37:17","guid":{"rendered":"https:\/\/www.blopig.com\/blog\/?p=12831"},"modified":"2025-08-06T16:25:40","modified_gmt":"2025-08-06T15:25:40","slug":"installing-open-source-pymol-with-pip","status":"publish","type":"post","link":"https:\/\/www.blopig.com\/blog\/2025\/08\/installing-open-source-pymol-with-pip\/","title":{"rendered":"Installing open source PyMOL with pip"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">TLDR; <code>pip install pymol-open-source<\/code><\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/github.com\/schrodinger\/pymol-open-source\" data-type=\"link\" data-id=\"https:\/\/github.com\/schrodinger\/pymol-open-source\">open source version of PyMOL<\/a> is excellent and it can be installed with <code>mamba<\/code> from <a href=\"https:\/\/anaconda.org\/conda-forge\/pymol-open-source\" data-type=\"link\" data-id=\"https:\/\/anaconda.org\/conda-forge\/pymol-open-source\">conda forge<\/a> via <code>mamba install conda-forge::pymol-open-source<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><s>However, until now there was no PyPI package available which means that you could not install PyMOL via <code>pip<\/code> and you had to specify a PyMOL dependency outside of the convenient python packaging ecosystem. This meant that as a result you could not make your own package installable via <code>pip<\/code> without telling users to install PyMOL separately.<\/s> Edit: In March 2025, Martin Urban kindly added <a href=\"https:\/\/pypi.org\/project\/pymol-open-source-whl\/\" data-type=\"link\" data-id=\"https:\/\/pypi.org\/project\/pymol-open-source-whl\/\">wheels for open source PyMOL to PyPI<\/a> that allow for <code>pip install pymol-open-source-whl<\/code>. They are up-to-date with the latest released PyMOL version (3.1.0) that does not yet support <code>numpy&gt;=2<\/code>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In an attempt to improve the situation, I setup a <a href=\"https:\/\/github.com\/maabuu\/pymol-wheels\" data-type=\"link\" data-id=\"https:\/\/github.com\/maabuu\/pymol-wheels\">GitHub project containing a workflow<\/a> that creates precompiled files using GitHub actions for Linux, Windows, and MacOS that builds on the testing actions in the <a href=\"https:\/\/github.com\/schrodinger\/pymol-open-source\" data-type=\"link\" data-id=\"https:\/\/github.com\/schrodinger\/pymol-open-source\">open source code base<\/a>. The actions instruct GitHub-hosted runners to download the source code, build the packages, share the files on the <a href=\"https:\/\/github.com\/maabuu\/pymol-wheels\/releases\" data-type=\"link\" data-id=\"https:\/\/github.com\/maabuu\/pymol-wheels\/releases\">releases page<\/a>, and upload them to <a href=\"https:\/\/pypi.org\/project\/pymol-open-source\/#files\" data-type=\"link\" data-id=\"https:\/\/pypi.org\/project\/pymol-open-source\/#files\">PyPI<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Currently, wheel files for the latest alpha version of PyMOL (3.2.0a0) are available which plays nicely with <code>numpy&gt;=2<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The workflow is hacky, especially in comparison to the shiny <a href=\"https:\/\/github.com\/conda-forge\/pymol-open-source-feedstock\" data-type=\"link\" data-id=\"https:\/\/github.com\/conda-forge\/pymol-open-source-feedstock\">pymol open source conda forge feedstock<\/a>, but it works, at least for now. Next up, adding MacOS ARM builds. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TLDR; pip install pymol-open-source<\/p>\n","protected":false},"author":92,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","wikipediapreview_detectlinks":true,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29,296,351,228,227,272],"tags":[196,606,132,152,776,867],"ppma_author":[487],"class_list":["post-12831","post","type-post","status-publish","format-standard","hentry","category-code","category-hints-and-tips","category-molecular-visualization","category-protein-structure","category-python-code","category-software-services","tag-github","tag-github-actions","tag-pymol","tag-python","tag-software","tag-wheels"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"authors":[{"term_id":487,"user_id":92,"is_guest":0,"slug":"martin","display_name":"Martin Buttenschoen","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/766a8e998df1df02635f3d2411a8526569f394d114b2fc9ebb896d84bb37484f?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/users\/92"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/comments?post=12831"}],"version-history":[{"count":4,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12831\/revisions"}],"predecessor-version":[{"id":12835,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12831\/revisions\/12835"}],"wp:attachment":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/media?parent=12831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/categories?post=12831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/tags?post=12831"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=12831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}