我们正在尝试在没有互联网的情况下安装几个python软件包。
For ex : python-keystoneclient
为此,我们从https://pypi.python.org/pypi/python- keystoneclient/1.7.1下载了软件包,并将其保存在服务器中。
但是,在安装tar.gz和.whl软件包时,安装过程将寻找要首先安装的相关软件包。由于服务器中没有Internet连接,因此连接失败。
例如:对于python-keystoneclient,我们有以下依赖包
stevedore (>=1.5.0) six (>=1.9.0) requests (>=2.5.2) PrettyTable (<0.8,>=0.7) oslo.utils (>=2.0.0) oslo.serialization (>=1.4.0) oslo.i18n (>=1.5.0) oslo.config (>=2.3.0) netaddr (!=0.7.16,>=0.7.12) debtcollector (>=0.3.0) iso8601 (>=0.1.9) Babel (>=1.3) argparse pbr (<2.0,>=1.6)
当我尝试从上面的列表中一个接一个地安装软件包时,再次寻找嵌套依赖。
有什么办法可以列出 所有 相关的软件包,以便安装python-keystoneclient之类的python模块。
这是我处理这种情况的方式:
在我可以访问Internet的机器上:
mkdir keystone-deps pip download python-keystoneclient -d "/home/aviuser/keystone-deps" tar cvfz keystone-deps.tgz keystone-deps
然后将tar文件移动到无法访问Internet的目标计算机,然后执行以下操作:
tar xvfz keystone-deps.tgz cd keystone-deps pip install python_keystoneclient-2.3.1-py2.py3-none-any.whl -f ./ --no-index
您可能需要向命令添加–no-deps,如下所示:
pip install python_keystoneclient-2.3.1-py2.py3-none-any.whl -f ./ --no-index --no-deps