首先,我设法在无法访问 Internet 的服务器上安装 Ansible。但我想知道我的方法是否正确。
起初我通过pip3
.
pip3 download ansible -d .
这导致下载了以下文件:
ansible-2.9.4.tar.gz
cryptography-2.8-cp34-abi3-manylinux1_x86_64.whl
MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
PyYAML-5.3.tar.gz
cffi-1.13.2-cp36-cp36m-manylinux1_x86_64.whl
Jinja2-2.11.1-py2.py3-none-any.whl
pycparser-2.19.tar.gz
six-1.14.0-py2.py3-none-any.whl
现在我已经在我的远程计算机上提供了这些文件,我尝试使用
pip3 install ansible-2.9.4.tar.gz
安装ansible。
这导致了以下错误:
Processing ./ansible-2.9.4.tar.gz
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by
'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at
0x7f00726f9ef0>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/jinja2/
所以我尝试手动安装 Jinja2:
pip3 install jinja2-2.11.1-py2.py3-none-any.whl
但这也不起作用:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection
broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at
0x7fd303a23940>: Failed to establish a new connection: [Errno -2] Name or service not known',)':
/simple/markupsafe/
安装 Markupsafe 后,也可以安装 Jinja2。最后pip3 install ansible-2.9.4.tar.gz
我成功安装了ansible。
现在我的问题是。有没有办法告诉pip
使用下载的文件来安装依赖项,或者是否有更简单的方法来安装特定的 python 包及其所有依赖项脱机?
感谢您的帮助和最诚挚的问候。亚伯斯
我相信您正在寻找的是--no-index和--find-links选项
pip install
。根据官方pip install
选项文档:使用这些选项,您可以执行 ex。本地安装:
或远程安装(例如通过 HTTP):
在您的情况下,您应该能够简单地使用
ansible
包名称 ex.:如果您愿意,可以使用完整的文件名:
假设所有必需的依赖项都位于同一位置(如您的原始问题中所列),它们应该正常安装(即无需手动按顺序安装每个依赖项)。
要求
另一种选择可能是使用正确的依赖项安装顺序制作需求文件,例如:
前任。要求.txt
然后使用例如
pip3 install -r requirements.txt
安装列出的软件包。您也可以再次使用例如 HTTP 链接:前任。要求.txt
这里明显的缺点是,假设一个包依赖于另一个包,您已经需要知道某些包需要安装的顺序。
其他 URL 选项
您可能还想查看文档的版本控制系统 (VCS) 部分,其中提供了与 VCS 链接(即 Git、Mercurial、Subversion 和 Bazaar)
pip install
结合的示例。pip install
参考
点安装
点安装(选项)
由于您不需要完整的镜像,因此我建议使用python-pypi-mirror:
1- 在具有 Internet 连接的服务器上使用 pip 安装 python-pypi-mirror。
2- 在此服务器上安装 http.server python 模块。
3- 创建一个目录来为您的 pip 包提供服务。
4- 使用 python-pypi-mirror 将所需的包下载到最近创建并公开为 http 服务器的目录(它将包含其所有依赖项)。
5-远程安装所需的软件包。
您将在此处找到所有需要的说明