diff --git a/docs/changelog/2944.bugfix.rst b/docs/changelog/2944.bugfix.rst new file mode 100644 index 000000000..21ba0d22e --- /dev/null +++ b/docs/changelog/2944.bugfix.rst @@ -0,0 +1 @@ +Replaced direct references to tcl/tk library paths with getattr. By :user:`esafak` diff --git a/src/virtualenv/activation/bash/__init__.py b/src/virtualenv/activation/bash/__init__.py index fd86a4208..4f160744f 100644 --- a/src/virtualenv/activation/bash/__init__.py +++ b/src/virtualenv/activation/bash/__init__.py @@ -15,8 +15,8 @@ def as_name(self, template): def replacements(self, creator, dest): data = super().replacements(creator, dest) data.update({ - "__TCL_LIBRARY__": creator.interpreter.tcl_lib or "", - "__TK_LIBRARY__": creator.interpreter.tk_lib or "", + "__TCL_LIBRARY__": getattr(creator.interpreter, "tcl_lib", None) or "", + "__TK_LIBRARY__": getattr(creator.interpreter, "tk_lib", None) or "", }) return data diff --git a/src/virtualenv/activation/fish/__init__.py b/src/virtualenv/activation/fish/__init__.py index 28052e64f..26263566e 100644 --- a/src/virtualenv/activation/fish/__init__.py +++ b/src/virtualenv/activation/fish/__init__.py @@ -10,8 +10,8 @@ def templates(self): def replacements(self, creator, dest): data = super().replacements(creator, dest) data.update({ - "__TCL_LIBRARY__": creator.interpreter.tcl_lib or "", - "__TK_LIBRARY__": creator.interpreter.tk_lib or "", + "__TCL_LIBRARY__": getattr(creator.interpreter, "tcl_lib", None) or "", + "__TK_LIBRARY__": getattr(creator.interpreter, "tk_lib", None) or "", }) return data diff --git a/src/virtualenv/activation/nushell/__init__.py b/src/virtualenv/activation/nushell/__init__.py index 9558a70a5..d3b312497 100644 --- a/src/virtualenv/activation/nushell/__init__.py +++ b/src/virtualenv/activation/nushell/__init__.py @@ -34,8 +34,8 @@ def replacements(self, creator, dest_folder): # noqa: ARG002 "__VIRTUAL_ENV__": str(creator.dest), "__VIRTUAL_NAME__": creator.env_name, "__BIN_NAME__": str(creator.bin_dir.relative_to(creator.dest)), - "__TCL_LIBRARY__": creator.interpreter.tcl_lib or "", - "__TK_LIBRARY__": creator.interpreter.tk_lib or "", + "__TCL_LIBRARY__": getattr(creator.interpreter, "tcl_lib", None) or "", + "__TK_LIBRARY__": getattr(creator.interpreter, "tk_lib", None) or "", } diff --git a/src/virtualenv/activation/via_template.py b/src/virtualenv/activation/via_template.py index 83229441a..85f932605 100644 --- a/src/virtualenv/activation/via_template.py +++ b/src/virtualenv/activation/via_template.py @@ -47,8 +47,8 @@ def replacements(self, creator, dest_folder): # noqa: ARG002 "__VIRTUAL_NAME__": creator.env_name, "__BIN_NAME__": str(creator.bin_dir.relative_to(creator.dest)), "__PATH_SEP__": os.pathsep, - "__TCL_LIBRARY__": creator.interpreter.tcl_lib or "", - "__TK_LIBRARY__": creator.interpreter.tk_lib or "", + "__TCL_LIBRARY__": getattr(creator.interpreter, "tcl_lib", None) or "", + "__TK_LIBRARY__": getattr(creator.interpreter, "tk_lib", None) or "", } def _generate(self, replacements, templates, to_folder, creator):