python - 如何离线安装ruamel.yaml python库?

python - 如何离线安装ruamel.yaml python库?

我正在尝试在没有Internet连接的Centos 7机器上安装ruamel.yaml python库。我尝试了这个:

使用本地存储库安装了libyaml-devel,python-devel,python-pip
从pypi下载ruamel.yaml-0.13.14.tar和ruamel.ordereddict-0.4.6.tar(dependency)。
现在我可以使用pip install来安装ruamel.ordereddict。,
但是当我尝试以相同方式安装ruamel.yaml时,出现以下异常:

[root@limulus ruamel.yaml-0.13.14]# pip install .
Processing /tmp/python/ruamel.yaml-0.13.14
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib/python2.7/site-packages/setuptools/init.py”, line 2, in
from setuptools.extension import Extension, Library
File “/usr/lib/python2.7/site-packages/setuptools/extension.py”, line 5, in
from setuptools.dist import _get_unpatched
File “/usr/lib/python2.7/site-packages/setuptools/dist.py”, line 7, in
from setuptools.command.install import install
File “/usr/lib/python2.7/site-packages/setuptools/command/init.py”, line 8, in
from setuptools.command import install_scripts
File “/usr/lib/python2.7/site-packages/setuptools/command/install_scripts.py”, line 3, in
from pkg_resources import Distribution, PathMetadata, ensure_directory
File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 74, in
import parser
File “parser.py”, line 77, in
from ruamel.yaml.error import MarkedYAMLError # type: ignore
File “/usr/lib64/python2.7/site-packages/ruamel/init.py”, line 5, in
import(‘pkg_resources’).declare_namespace(name)
AttributeError: ‘module’ object has no attribute ‘declare_namespace’


Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-oOWX1x-build/

在离线模式下安装python库的正确方法是什么?
最佳答案

看来您已经在扩展tar文件了,这不是必须的,但是我不确定这是否是导致此错误的原因,您可能还缺少了typing依赖项。

您不应该使用安装为pip的系统,它几乎已过期,并且在某些系统上实际上会由于这些旧版本中未修复的错误而导致问题。

您也不应该在Python virtualenv之外使用pip安装软件包,因为当更新/覆盖systems site-packages/dist-packages目录中的内容时,这可能会破坏您的系统。下面提供的解决方案仅将pip / wheels / virtualenv安装在系统目录中,这是AFAIK安全的,但是如果有必要的话,也有一些解决方法。

您还应该考虑使用提供的轮子来安装软件包。这样,C扩展不需要编译。

在联机计算机上执行以下操作:

mkdir /tmp/offline
cd /tmp/offline

your python-pip installed pip might not support wheels

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
wget https://pypi.python.org/packages/a7/37/947b4329c4a3c72093b6c8e9b4be8c7f10c32dbb78848d3a234ce01c059d/wheel-0.30.0a0.tar.gz
wget https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl

现在下载所需的轮子(.tar.gz,如果不可用):

wget https://pypi.python.org/packages/96/4b/5251bf469f37e49e0c92f841b5b3ef01a1c9d652cc018df470e5ae235eb8/ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl
wget https://pypi.python.org/packages/63/40/c38b857ec6a083e534ee9a9f655741120d4bfd9139232681f976cf44272b/ruamel.yaml-0.13.14-cp27-cp27mu-manylinux1_x86_64.whl
wget https://pypi.python.org/packages/b6/0c/53c42edca789378b8c05a5496e689f44e5dd82bc6861d1ae5a926ee51b84/typing-3.5.3.0.tar.gz

将六个文件复制到脱机系统的新目录中,然后执行

sudo pip install pip*.tar.gz wheel*.tar.gz
sudo pip install virtualenv*
virtualenv ~/ruamel
source ~/ruamel/bin/activate
pip install typing* ruamel*

这为您提供了一个安装了ruamel.yaml的virtualenv,只需将您的应用程序也添加到其中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值