diff --git a/news/10045.feature.rst b/news/10045.feature.rst new file mode 100644 index 00000000000..7c7b53725fc --- /dev/null +++ b/news/10045.feature.rst @@ -0,0 +1 @@ +Added a warning message for errors caused due to Long Paths being disabled on Windows. diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py index 6932f5a6d8b..2fa6a62740a 100644 --- a/src/pip/_internal/commands/install.py +++ b/src/pip/_internal/commands/install.py @@ -26,6 +26,7 @@ from pip._internal.req import install_given_reqs from pip._internal.req.req_install import InstallRequirement from pip._internal.req.req_tracker import get_requirement_tracker +from pip._internal.utils.compat import WINDOWS from pip._internal.utils.distutils_args import parse_distutils_args from pip._internal.utils.filesystem import test_writable_dir from pip._internal.utils.misc import ( @@ -737,4 +738,16 @@ def create_os_error_message(error, show_traceback, using_user_site): parts.append(permissions_part) parts.append(".\n") + # Suggest the user to enable Long Paths if path length is + # more than 260 + if (WINDOWS and error.errno == errno.ENOENT and error.filename and + len(error.filename) > 260): + parts.append( + "HINT: This error might have occurred since " + "this system does not have Windows Long Path " + "support enabled. You can find information on " + "how to enable this at " + "https://pip.pypa.io/warnings/enable-long-paths\n" + ) + return "".join(parts).strip() + "\n"