python – 如何克服 – 在windows上使用文件名或扩展名失败的pip install ansible

前端之家收集整理的这篇文章主要介绍了python – 如何克服 – 在windows上使用文件名或扩展名失败的pip install ansible前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何修复 Windows上的pip安装失败,错误如下.尝试安装ansible时出现此错误.

我怀疑选择的pip包安装问题.但同样适用于基于Linux的系统. 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/'

解决方法

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

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

In Ansible 2.4.0,the module copy use symbolic links in the tests suite: 07001

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

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

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

错误报告以:

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:

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

(pip install ansible命令下载“source”.tgz archive,执行测试,…并且路径问题在测试中,所以让我们使用一个现成的预构建的bundle)

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

在我的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

好的,已安装,但让我们尝试导入它:

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

作品!好极了!

原文链接:https://www.f2er.com/python/186066.html

猜你在找的Python相关文章