[英]How to overcome - pip install ansible on windows failing with filename or extension too long on windows
如何修复 Windows 上的 pip 安装失败并出现以下错误。 尝试安装 ansible 时出现此错误。
我怀疑它与选定的用于安装的 pip 包有关。 但同样适用于基于 Linux 的系统。 pip install 和 OS 有什么区别吗
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
在 Ansible 2.4.0 中,模块复制使用测试套件中的符号链接: https : //github.com/ansible/ansible/tree/devel/test/integration/targets/copy/files/subdir/subdir1
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/
错误报告以:
我们不支持直接在 Windows 机器上安装 ansible。 您将需要一个类似 linux 的操作系统来安装 ansible
一种可能的解决方法是在 pypi 上下载轮子,它不依赖于 Linux 或其他任何东西,可能是纯 python:
https://pypi.python.org/pypi/ansible/2.5.0a
( pip install ansible
命令下载“源”.tgz 存档,执行测试,......路径问题在测试中,所以让我们使用现成的预构建包)
下载后,使用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
>>>
作品! 耶!
我在不使用 pip 的情况下安装了 ansible,这对我来说似乎很简单。
步骤:
从https://pypi.org/project/ansible/下载压缩的 .tgz 档案
打开 7-zip 右键以管理员身份运行并解压。 <- admin 是必需的,因为符号链接
在文件夹中打开一个管理控制台并运行:
python setup.py 安装
现在 ansible 安装在 Windows 上。
我也遇到了在 Windows 上安装 ansible 的问题。 我建议启用 windows ubuntu 子系统,而不是尝试在平台上安装 ansible。
请参阅https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows
完成后,通过 apt-get 或 pip 安装 ansible 。
——
使用 PIP 安装:
首先确保你有 python3-disutils:
sudo apt 安装 python3-distutils
然后按照https://pip.pypa.io/en/stable/installing/安装 pip
尝试运行 ansible - 如果找不到,则需要将 site-packages 目录添加到 $PATH。
为了避免所有这些安装工作,我建议使用 apt-get。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.