且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何克服-Windows上的pip安装Ansible失败,Windows上的文件名或扩展名太长

更新时间:2021-10-31 08:22:29

好吧,这似乎是一个已知的错误:

Well, it seems to be a known bug:

https://github.com/ansible/ansible/issues/31419

在Ansible 2.4.0中,模块副本使用测试套件中的符号链接:

circles -> ../
subdir3 -> ../subdir2/subdir3

Windows 10无法创建此目录树,因为路径太长.实际上,解决的路径是:

Windows 10, cannot create this directories tree because the path is too long. In fact the resolved path is:

test/integration/targets/copy/files/subdir/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir1/circles/subdir2/subdir3/

错误报告的结尾为:

我们不支持直接在Windows机器上安装ansible.您将需要类似linux的操作系统才能在其上安装ansible

We do not support installing ansible directly on a windows machine. You will need a linux like operating system to install ansible on

解决方法

一个可能的解决方法是在pypi上下载转轮,它不依赖于Linux或其他任何东西,可能是纯python:

A possible workaround is to download the wheel on pypi, it doesn't depend on Linux or whatever, probably pure python:

https://pypi.python.org/pypi/ansible/2.5.0a

(pip install ansible命令下载源" .tgz归档文件,执行测试,...路径问题在测试之内,因此让我们使用现成的预构建捆绑包)

(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)

下载后,使用pip install path/to/the/wheel/file.whl

在Windows 10计算机上测试并成功安装:

Tested and installed successfully on my Windows 10 machine:

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, installed, but let's try to import it:

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
>>>

有效!是的!