Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pyfindvs

Python client library for locating Visual Studio installations.

Supports Visual Studio 2017, 2019, 2022 and 2026 (major versions 15.x-18.x) through the Setup Configuration API, as well as the older VS2015 (14.x) and the Windows 10 SDK through the registry. Newer major versions of Visual Studio are detected automatically, without requiring a code change, as long as they keep using the installation layout introduced with VS2017.

Usage

The basic functions are findall, findwithall and findwithany.

Calling findall will return a (potentially cached) list of currently installed copies of Visual Studio. Each list item is a VisualStudioInstance object with attributes for name, version, version_info (numeric parts of version as a tuple), path and packages (a set of the installed components).

Calling findwithall or findwithany will only return instances of Visual Studio where all/any of the specified package names are installed.

For example:

>>> pyfindvs.findall()
[<VisualStudioInstance at C:\Program Files\Microsoft Visual Studio\2026\Community>,
 <VisualStudioInstance at C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools>]

>>> pyfindvs.findwithall('Microsoft.VisualStudio.Component.VC.Tools.x86.x64',
                         'Microsoft.VisualStudio.Component.Windows10SDK.10586')
[<VisualStudioInstance at C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools>]

>>> pyfindvs.findwithany('Microsoft.VisualStudio.Component.VC.Tools.x86.x64',
                         'Microsoft.VisualStudio.Component.Windows10SDK.10586')
[<VisualStudioInstance at C:\Program Files\Microsoft Visual Studio\2026\Community>,
 <VisualStudioInstance at C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools>]

Building

This project is built with pymsbuild, configured in _msbuild.py. On Windows, pip install . (or pip wheel .) will detect and use your Visual Studio installation automatically; the Microsoft.VisualStudio.Setup.Configuration.Native NuGet package (used to build the native _helper extension) is fetched automatically the first time you build.

Requires Python 3.8 or later (tested through 3.15).

Releases are published to PyPI automatically by .github/workflows/release.yml whenever a tag matching X.Y.Z is pushed; the tag name becomes the package version. The sdist/wheel are built on Windows (a build job, since the native _helper extension needs MSVC), then published from a separate publish job on Ubuntu using PyPI's Trusted Publisher support (OIDC) rather than an API token, scoped to its own pypi GitHub Environment.

Testing

Unit tests live in tests/ and run with pytest. They do not require Visual Studio (or even Windows) to be installed -- native/registry-backed pieces are replaced with lightweight fakes so that version parsing, path resolution and filtering logic can be verified directly.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfindvs-0.7.0b1.tar.gz (17.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyfindvs-0.7.0b1-cp315-cp315-win_arm64.whl (29.1 kB view details)

Uploaded CPython 3.15Windows ARM64

pyfindvs-0.7.0b1-cp315-cp315-win_amd64.whl (27.8 kB view details)

Uploaded CPython 3.15Windows x86-64

pyfindvs-0.7.0b1-cp314-cp314-win_arm64.whl (29.1 kB view details)

Uploaded CPython 3.14Windows ARM64

pyfindvs-0.7.0b1-cp314-cp314-win_amd64.whl (27.7 kB view details)

Uploaded CPython 3.14Windows x86-64

pyfindvs-0.7.0b1-cp313-cp313-win_arm64.whl (29.1 kB view details)

Uploaded CPython 3.13Windows ARM64

pyfindvs-0.7.0b1-cp313-cp313-win_amd64.whl (27.7 kB view details)

Uploaded CPython 3.13Windows x86-64

pyfindvs-0.7.0b1-cp312-cp312-win_arm64.whl (29.0 kB view details)

Uploaded CPython 3.12Windows ARM64

pyfindvs-0.7.0b1-cp312-cp312-win_amd64.whl (27.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pyfindvs-0.7.0b1-cp311-cp311-win_arm64.whl (28.6 kB view details)

Uploaded CPython 3.11Windows ARM64

pyfindvs-0.7.0b1-cp311-cp311-win_amd64.whl (27.3 kB view details)

Uploaded CPython 3.11Windows x86-64

pyfindvs-0.7.0b1-cp310-cp310-win_arm64.whl (28.3 kB view details)

Uploaded CPython 3.10Windows ARM64

pyfindvs-0.7.0b1-cp310-cp310-win_amd64.whl (27.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pyfindvs-0.7.0b1-cp39-cp39-win_arm64.whl (28.4 kB view details)

Uploaded CPython 3.9Windows ARM64

pyfindvs-0.7.0b1-cp39-cp39-win_amd64.whl (27.0 kB view details)

Uploaded CPython 3.9Windows x86-64

pyfindvs-0.7.0b1-cp38-cp38-win_amd64.whl (27.0 kB view details)

Uploaded CPython 3.8Windows x86-64

File details

Details for the file pyfindvs-0.7.0b1.tar.gz.

File metadata

  • Download URL: pyfindvs-0.7.0b1.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1.tar.gz
Algorithm Hash digest
SHA256 0ab300f09318e2650ce07210447b4de5af41e6422e2b6638d3083046a8e81dfc
MD5 08a286669042d45228f5e5a8bca63b74
BLAKE2b-256 329252314ba737af98034a1064c6089aa9c57089d529fd5482fb04ab6c3d9d22

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1.tar.gz:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp315-cp315-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp315-cp315-win_arm64.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: CPython 3.15, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp315-cp315-win_arm64.whl
Algorithm Hash digest
SHA256 8fee00bb89806f511dfa967485859b91bf123ac6ef6f9dfd86312eeb0f5660d4
MD5 448b7be1b5dc5bdae99b41192bd22934
BLAKE2b-256 33df878dd06564cfbfa3bae63667516ee29c5882efd0b3924df5e0e9ac58d47b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp315-cp315-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp315-cp315-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp315-cp315-win_amd64.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: CPython 3.15, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 50480a2fb3c45bb17fe54d46ca8445a73ad0f444899adedc8a0960125f62369c
MD5 a37ad2b04a83409b2e9d933d3c7cbf43
BLAKE2b-256 b2adb57cd9bbcafac1a9c8aa3eb0ec07636fd88cba42de4e3c9931e95b418b16

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp315-cp315-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 0c338747479c07b123479eeb917311dce89830c331967d946c441f679ac82fc5
MD5 553f597e02d2147d35a671a83fede906
BLAKE2b-256 912d2acc2fa89d054b9b5d8bde03b508af1d672abafa0d3c2599b5d9b7397ad9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp314-cp314-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fa21ee51495ad4edae7e29f32b425363b5867181ff57c0aa2fd87a698f2428f9
MD5 0b07265cb98487f22f957d3aea9ffb0f
BLAKE2b-256 69c64b11ae01012983281b9e78d356159e8b501354a955f4f8ed303a4b683001

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp314-cp314-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 c868065b549c8ff43ae9e8a1fd65595b83e7e7056d55e88ded72f0601378cb25
MD5 31f7b36fed6bd9a61d79c34a6f21223b
BLAKE2b-256 cad7469ce060c00b3fa75c1d7143385a525b18e5de8bdbae6523ba38d6f37554

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp313-cp313-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a295f4848bc13163cdb091baf7eca8415cb5f97e03bba85862dc66f9f019c933
MD5 32562e53de174f2f1e69befc68d8d821
BLAKE2b-256 f885f2e3f63b82c6dd1b9bdcfa3cbc2b3be27f205f273b415f4b581cb929c7c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 ac08ba89f7ea42d52777acd06f09802d712531f314b31d592866cd889e467620
MD5 40ee178bc600a90ea5e925a731f04449
BLAKE2b-256 0173a4894dc803884474457ccc550a8b5b7179a27231bab652b20fbf1b20c036

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp312-cp312-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 714fe003f792df05f18259d033a40043b682d3f7296474be21440c1affcd2f47
MD5 3906c56527c728cc27eb4ebf8a22b9d5
BLAKE2b-256 9c129f99d6d8479dba2abf09f8d42a299344bcfdba7c21b1582dc21c8b3d6a65

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 28.6 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 db48c58ec1400d9b0a312bae73af1713fb5a4ec0df0c8cd27dc51aee7d5a966f
MD5 a8063a360d87eef6975f4bcbdc08f787
BLAKE2b-256 acfe97cb9ec78964d398421f36970d443e758b1df44ce4df08a14024f6d79407

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp311-cp311-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ff73ab8147ef66f4a07a07f1d6e482790d52b338080780a9c99d16277c1942b7
MD5 b31f61cd5dd345c3876dc87ecde99b3e
BLAKE2b-256 18c8501d84aa861f1fbfc48d889a0412ddbae4db7084d36c8ca7c07f7ea7cf66

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 e666913614958f54b47bd03a2f8d064a9af6080d117cb91d555707168fb26b84
MD5 8919a3a8b9575fefc302ed0549a534a3
BLAKE2b-256 d096945bf575071dcc0374c78b5bc35a3c97943c9e404a49ed20968c0ca2220b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp310-cp310-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fa9d346be37ac9db195172fbd372f5c189a368a0d70a8e0ab857f9acd7caa0f4
MD5 9f68f4d77f08a2275586f7a7473895b0
BLAKE2b-256 570841db8d10267b298beda301899fbf48f8f2ee75e0ed35f3b313c49cdaa794

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 e051345def5770c9b720fbfc055e5231583ba8acc3f009fdaca3fd4629dd2f8b
MD5 302ddf56c08f3d9c723ee28c051ba233
BLAKE2b-256 b687de4b956ad199d9437a4385b25c544f8234e497a122ede666cc6a6f8db139

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp39-cp39-win_arm64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6b96823c734fc6cd1b84010693ddeddf41e1070c8a8b90304835cceb91d57ec3
MD5 dbfa4ec6e2551278ab30d076afcec4a9
BLAKE2b-256 5a95a028a0d44fa4651309ab8a0ad39429db74e67db4ba9ac648836fb9b834de

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp39-cp39-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfindvs-0.7.0b1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyfindvs-0.7.0b1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfindvs-0.7.0b1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1ad2afa6fdf2890fb0375eb53e31b7c989fbb4131a97e63ab768ad0001e5a183
MD5 4d469ef5c4c429e76d6da501d8acfe2a
BLAKE2b-256 c465e16e52c8d0448159153d2994a87e149cb61a6701176d39e3751613bdc9fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfindvs-0.7.0b1-cp38-cp38-win_amd64.whl:

Publisher: release.yml on zooba/pyfindvs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.7.0b1 This release

16 files

0.6.291

7 files

0.6.177

7 files

0.6.175

5 files

0.6.150

5 files

0.6.144

5 files

0.5.68

5 files

0.5.67

5 files

0.3.1

5 files

0.3.0

5 files

0.2.0

5 files

0.1.1

5 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page