fix(venv): include pth files at the root of the site-packages folder (#3340)

Before this PR we would not include `pth` files at the root of the
`site-packages` folder, but we would include if they are further down
the tree.

Fixes #3339
Fixes #2071
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7782454..aebcfcc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -105,6 +105,9 @@
 * (venvs) {obj}`--venvs_site_packages=yes` works for packages that dynamically
   link to shared libraries
   ([#3228](https://github.com/bazel-contrib/rules_python/issues/3228)).
+* (venvs) {obj}`--venvs_site_packages=yes` includes `pth` files at the root of the
+  site-packages folder
+  ([#3339](https://github.com/bazel-contrib/rules_python/issues/3339)).
 * (uv) {obj}`//python/uv:lock.bzl%lock` now works with a local platform
   runtime.
 * (toolchains) WORKSPACE builds now correctly register musl and freethreaded
diff --git a/python/private/common.bzl b/python/private/common.bzl
index 33b175c..ddeea6e 100644
--- a/python/private/common.bzl
+++ b/python/private/common.bzl
@@ -36,6 +36,7 @@
     "dylib",  # Python C modules, Mac specific
     "py",
     "pyc",
+    "pth",  # import 'pth' files
     "pyi",
     "so",  # Python C modules, usually Linux
 ]
diff --git a/python/private/venv_runfiles.bzl b/python/private/venv_runfiles.bzl
index 9bdacf8..05dc296 100644
--- a/python/private/venv_runfiles.bzl
+++ b/python/private/venv_runfiles.bzl
@@ -290,9 +290,10 @@
             entry = VenvSymlinkEntry(
                 kind = VenvSymlinkKind.LIB,
                 link_to_path = paths.join(runfiles_dir_name, site_packages_root, filename),
+                link_to_file = src,
                 package = package,
                 version = version_str,
-                venv_path = filename,
+                venv_path = path,
                 files = depset([src]),
             )
             venv_symlinks.append(entry)
diff --git a/tests/venv_site_packages_libs/app_files_building/app_files_building_tests.bzl b/tests/venv_site_packages_libs/app_files_building/app_files_building_tests.bzl
index 31c720a..db2f21c 100644
--- a/tests/venv_site_packages_libs/app_files_building/app_files_building_tests.bzl
+++ b/tests/venv_site_packages_libs/app_files_building/app_files_building_tests.bzl
@@ -271,6 +271,9 @@
             "site-packages/foo.libs/libx.so",
             "site-packages/foo/a.py",
             "site-packages/foo/b.so",
+            "site-packages/root.pth",
+            "site-packages/root.py",
+            "site-packages/root.so",
         ],
     )
     analysis_test(
@@ -314,6 +317,9 @@
         "bar/y.so": srcs[2],
         "foo": "_main/tests/venv_site_packages_libs/app_files_building/site-packages/foo",
         "foo.libs/libx.so": srcs[3],
+        "root.pth": srcs[-3],
+        "root.py": srcs[-2],
+        "root.so": srcs[-1],
     }
     env.expect.that_dict(actual[VenvSymlinkKind.LIB]).contains_exactly(expected_libs)