如何修复Windows上的pip安装失败,并出现以下错误。尝试安装ansible时出现此错误。
我怀疑选择的pip包安装问题。但同样适用于基于Linux的系统。与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/'
答案 0 :(得分:5)
嗯,这似乎是一个已知的错误:
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
>>>
作品!耶!
答案 1 :(得分:2)
我在不使用pip的情况下安装了ansible,这对我来说似乎很简单。
步骤:
从https://pypi.org/project/ansible/下载压缩的.tgz归档文件
打开7-zip文件,右键单击以管理员身份运行,然后解压缩。 <-管理员是必需的,因为有符号链接
在该文件夹中打开一个管理控制台,然后运行:
python setup.py安装
现在Windows上已安装ansible。
答案 2 :(得分:0)
我还遇到在Windows上安装ansible的问题。与其尝试在平台上安装ansible,还不是为了建议您启用Windows ubuntu子系统。
请参见https://tutorials.ubuntu.com/tutorial/tutorial-ubuntu-on-windows
一旦您通过apt-get或pip完成install ansible。
-
使用PIP安装:
确保首先拥有python3-disutils:
sudo apt install python3-distutils
,然后按照https://pip.pypa.io/en/stable/installing/
安装pip尝试运行ansible-如果找不到,则需要将site-packages目录添加到$ PATH中。
为避免所有这些安装工作,我建议使用apt-get。