{
    "componentChunkName": "component---src-templates-markdown-doc-tsx",
    "path": "/2025.1.3/installation/python_packages",
    "result": {"data":{"mdx":{"id":"c45a989d-d766-5500-8902-fa8e7cef2e2e","frontmatter":{"title":"","images":null},"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Salvus and Python\"), mdx(\"p\", null, \"Salvus, except for the compute binary, comes as a single Python package, \", mdx(SalvusPy, {\n    mdxType: \"SalvusPy\"\n  }), \".\"), mdx(\"p\", null, \"Please note that Python is \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"not necessary\"), \" for \", mdx(SalvusCompute, {\n    mdxType: \"SalvusCompute\"\n  }), \" to run on HPC\\nsystems and other large clusters.\"), mdx(Message, {\n    color: \"violet\",\n    header: \"Python Version Support\",\n    content: mdx(\"div\", null, mdx(\"p\", null, mdx(\"br\", null), \"Salvus is currently available for Python 3.11. We support every odd version of Python and in general stick to the recommendations of \", mdx(\"a\", {\n      href: \"https://scientific-python.org/specs/spec-0000/\"\n    }, \"SPEC 0\"), \".\")),\n    mdxType: \"Message\"\n  }), mdx(\"h2\", null, \"Setting up Python\"), mdx(\"p\", null, \"Salvus currently requires an installation of Python 3.11. There are different\\nways to set this up and most should work fine. We recommend to install the\\nlatest \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/conda-forge/miniforge\"\n  }, \"Miniforge\"), \" distribution.\"), mdx(\"p\", null, \"Please note that the user is responsible for complying with the licenses\\nprovided by any Python package installed and used.\"), mdx(\"h2\", null, \"Installing the dependencies\"), mdx(\"p\", null, \"Assuming you are following our recommendation of using \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Miniforge\"), \", you can,\\nafter installing it, proceed with the instructions below.\"), mdx(\"p\", null, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"environment.yml\"), \" describes a Python envionment containing all dependencies\\nrequired to run Salvus. Additionally, it contains the Jupyter project, which we\\nrecommend as an interface to Salvus.\"), mdx(\"p\", null, \"Run the following command to obtain the list of dependencies.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"curl https://docs.mondaic.com/environment-py311.yml -o environment.yml\\n\")), mdx(\"p\", null, \"If the above does not work, you can also \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/environment-py311.yml\"\n  }, \"right click\"), \"\\nto manually download the yaml file.\"), mdx(\"p\", null, \"The next block will now install all Python packages listed in the environment.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"# Create a new environment with all required dependencies.\\nmamba env create -n salvus -f environment.yml\\n# Activate that environment.\\nmamba activate salvus\\n\")), mdx(\"p\", null, \"By now there should be some indication in your shell that you have an active\\nSalvus Python environment. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Remember to always activate it, otherwise Salvus\\nwill not be available.\")), mdx(\"p\", null, \"Please note that this only installed the dependencies of Salvus, Salvus itself\\nwill be installed by following the instructions\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/installation/mondaic_downloader\"\n  }, \"here\"), \".\"), mdx(\"h2\", null, \"Python environments for older versions of Salvus\"), mdx(\"p\", null, \"The above environment file is intended and tested for the latest release of\\nSalvus. For older versions and previous releases, we maintain the legacy\\nenvironment files listed below.\"), mdx(\"h3\", null, \"Salvus 2025.1.3\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"curl https://docs.mondaic.com/environment-salvus-2025.yml -o environment.yml\\n\")), mdx(\"h3\", null, \"Salvus 2024.1.3\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"curl https://docs.mondaic.com/environment-salvus-2024.yml -o environment.yml\\n\")), mdx(\"h3\", null, \"Salvus 0.12.16\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-shell\"\n  }, \"curl https://docs.mondaic.com/environment-salvus-12.yml -o environment.yml\\n\")), mdx(\"p\", null, \"In case you run into any issues using an older version of Salvus, please\\ncontact \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"mailto:support@mondaic.com\"\n  }, \"support@mondaic.com\"), \", and we will help\\nyou upgrading.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}}},"pageContext":{"id":"c45a989d-d766-5500-8902-fa8e7cef2e2e"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}