| 1695 | |
| 1696 | if sys.platform == "win32": |
| 1697 | def _platform_specific(self): |
| 1698 | import glob |
| 1699 | import _winapi |
| 1700 | |
| 1701 | if os.path.lexists(self.real) and not os.path.exists(self.real): |
| 1702 | # App symlink appears to not exist, but we want the |
| 1703 | # real executable here anyway |
| 1704 | self.real = _winapi.GetModuleFileName(0) |
| 1705 | |
| 1706 | dll = _winapi.GetModuleFileName(sys.dllhandle) |
| 1707 | src_dir = os.path.dirname(dll) |
| 1708 | dest_dir = os.path.dirname(self.link) |
| 1709 | self._also_link.append(( |
| 1710 | dll, |
| 1711 | os.path.join(dest_dir, os.path.basename(dll)) |
| 1712 | )) |
| 1713 | for runtime in glob.glob(os.path.join(glob.escape(src_dir), "vcruntime*.dll")): |
| 1714 | self._also_link.append(( |
| 1715 | runtime, |
| 1716 | os.path.join(dest_dir, os.path.basename(runtime)) |
| 1717 | )) |
| 1718 | |
| 1719 | self._env = {k.upper(): os.getenv(k) for k in os.environ} |
| 1720 | home = os.path.dirname(self.real) |
| 1721 | if sysconfig.is_python_build(): |
| 1722 | home = os.path.join(home, sysconfig.get_config_var('VPATH')) |
| 1723 | self._env["PYTHONHOME"] = home |
| 1724 | else: |
| 1725 | def _platform_specific(self): |
| 1726 | pass |