comment réparer les échecs d'installation de pip sur Windows avec l'erreur ci-dessous. Obtenir cette erreur en essayant d'installer ansible.
Je soupçonne qu’il s’agit d’un problème avec le paquet pip sélectionné pour l’installation. mais la même chose fonctionne très bien avec les systèmes basés sur Linux. Y aura-t-il une différence avec le système d'exploitation pour l'installation de pip
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/'
Eh bien, cela semble être un bug connu:
https://github.com/ansible/ansible/issues/31419
Dans Ansible 2.4.0, les modules copiés utilisent des liens symboliques dans la suite de tests: https://github.com/ansible/ansible/anse/devel/test/integration/targets/copy/files/subdir/subdir1
circles -> ../
subdir3 -> ../subdir2/subdir3
Windows 10, impossible de créer cette arborescence de répertoires car le chemin est trop long. En fait, le chemin résolu est:
test/integration/targets/copy/files/subdir/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir2/subdir3/
le rapport de bogue se termine par:
Nous ne prenons pas en charge l’installation directe d’ansible sur une machine Windows. Vous aurez besoin d’un système d’exploitation de type Linux pour installer ansible sur
Une solution possible consiste à télécharger la roue sur pypi, cela ne dépend pas de Linux ni de quoi que ce soit, probablement du pur python:
https://pypi.python.org/pypi/ansible/2.5.0a
(La commande pip install ansible
télécharge l'archive "source" .tgz, effectue des tests, ... et que le problème du chemin d'accès se trouve dans les tests, utilisons donc un bundle préconfiguré prêt à l'emploi)
Une fois téléchargé, utilisez pip install path/to/the/wheel/file.whl
Testé et installé avec succès sur mon ordinateur Windows 10:
C:\Users\jotd>c:\Python27\Scripts\pip install C:\Users\jotd\Downloads\ansible-2.5.0a1-py2-none-any.whl
Processing c:\users\jotd\downloads\ansible-2.5.0a1-py2-none-any.whl
Requirement already satisfied: PyYAML in c:\python27\lib\site-packages (from ansible==2.5.0a1)
Collecting cryptography (from ansible==2.5.0a1)
<a lot of package collecting...>
Installing collected packages: idna, pycparser, cffi, asn1crypto, ipaddress, cryptography, pynacl, bcrypt, pyasn1, paramiko, ansible
Running setup.py install for pycparser ... done
Running setup.py install for ipaddress ... done
Successfully installed ansible-2.5.0a1 asn1crypto-0.24.0 bcrypt-3.1.4 cffi-1.11.4 cryptography-2.1.4 idna-2.6 ipaddress-1.0.19 paramiko-2.4.0 pyasn1-0.4.2 pycparser-2.18 pynacl-1.2.1
ok, installé, mais essayons de l'importer:
C:\Users\jotd>c:\python27\python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ansible
>>>
travaux! Yay!
J'ai installé ansible sans utiliser de pip, ce qui me paraissait assez simple.
Pas:
télécharger l'archive .tgz compressée à partir de https://pypi.org/project/ansible/
ouvrez 7-Zip en cliquant avec le bouton droit de la souris sur exécutez-vous en tant qu'administrateur et extrayez-le. <- admin est nécessaire à cause des liens symboliques
a ouvert une console d’administration dans le dossier et a exécuté:
installation de python.py install
maintenant ansible est installé sur Windows.
J'ai également rencontré des problèmes pour installer ansible sous Windows. Au lieu d'essayer d'installer ansible sur une plate-forme, ce n'est pas fait, je suggère d'activer le sous-système Windows Ubuntu.
Voir https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows } _
Une fois que vous avez fait cela installer ansible via apt-get ou pip.
-
Installation avec PIP:
Assurez-vous d’avoir python3-disutils en premier:
Sudo pour installer python3-distutils
puis installez pip selon https://pip.pypa.io/en/stable/installing/
Essayez de lancer ansible - si vous ne le trouvez pas, vous devez ajouter le répertoire site-packages à votre $ PATH.
Pour éviter tout ce travail d'installation, je suggère d'utiliser apt-get.