how to fix the pip install failures on windows with below error. Getting this error while trying to install ansible.
I suspect it is with issue with selected pip package for install. but the same is working fine with Linux based systems. Will there be any difference with OS for pip install
Exception:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "c:\python27\lib\site-packages\pip\commands\install.py", line 324, in run
requirement_set.prepare_files(finder)
File "c:\python27\lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "c:\python27\lib\site-packages\pip\req\req_set.py", line 620, in _prepare_file
session=self.session, hashes=hashes)
File "c:\python27\lib\site-packages\pip\download.py", line 821, in unpack_url
hashes=hashes
File "c:\python27\lib\site-packages\pip\download.py", line 663, in unpack_http_url
unpack_file(from_path, location, content_type, link)
File "c:\python27\lib\site-packages\pip\utils\__init__.py", line 605, in unpack_file
untar_file(filename, location)
File "c:\python27\lib\site-packages\pip\utils\__init__.py", line 553, in untar_file
ensure_dir(path)
File "c:\python27\lib\site-packages\pip\utils\__init__.py", line 83, in ensure_dir
os.makedirs(path)
File "C:\Python27\Lib\os.py", line 157, in makedirs
mkdir(name, mode)
WindowsError: [Error 206] The filename or extension is too long: 'c:\\users\\user123\\appdata\\local\\temp\\pip-build-isnb2t\\ansible\\test/integration/targets/copy/files/subdir/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/'
I got ansible installed without using pip, which seemed pretty straight forward to me.
Steps:
download compressed .tgz archive from https://pypi.org/project/ansible/
open 7-zip with right-click run as administrator and extract. <- admin is necessary because of symbolic links
opened an admin console in the folder and ran:
now ansible is installed on Windows.
Well, it seems to be a known bug:
https://github.com/ansible/ansible/issues/31419
Windows 10, cannot create this directories tree because the path is too long. In fact the resolved path is:
bug report ends with:
Workaround
A possible workaround is to download the wheel on pypi, it doesn't depend on Linux or whatever, probably pure python:
(the
pip install ansible
command downloads the "source" .tgz archive, performs tests, ... and the path issue is within the tests, so let's use a ready-to-use pre-built bundle)Once downloaded, use
pip install path/to/the/wheel/file.whl
Tested and installed successfully on my Windows 10 machine:
ok, installed, but let's try to import it:
works! yay!
I also ran into problems installing ansible on windows. Instead of trying to install ansible on a platform it isn't meant for I suggest enabling the windows ubuntu subsystem.
See https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows
Once you do that install ansible through apt-get or pip.
--
Installing with PIP:
Make sure you have python3-disutils first:
and then install pip as per https://pip.pypa.io/en/stable/installing/
Try running ansible - if it cant be found you need to add site-packages directory to your $PATH.
To avoid all this installation work I suggest using apt-get.