如何克服-Windows上的pip安装Ansible失败,Windows上的文件名或扩展名太长 [英] How to overcome - pip install ansible on windows failing with filename or extension too long on windows

查看:1063
本文介绍了如何克服-Windows上的pip安装Ansible失败,Windows上的文件名或扩展名太长的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何修复Windows上的pip安装失败,出现以下错误.尝试安装ansible时出现此错误.

how to fix the pip install failures on windows with below error. Getting this error while trying to install ansible.

我怀疑所选的pip软件包存在问题.但是在基于Linux的系统上也可以正常工作. pip安装的操作系统会不会有任何区别

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

推荐答案

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

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

有效!是的!

这篇关于如何克服-Windows上的pip安装Ansible失败,Windows上的文件名或扩展名太长的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆