gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:27 28 4
gpt4 key购买 nike

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

  1. 使用本地存储库安装了 libyaml-devel、python-devel、python-pip

  2. 从 pypi 下载了 ruamel.yaml-0.13.14.tar 和 ruamel.ordereddict-0.4.6.tar(依赖项)。

  3. 现在我可以使用 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 "<string>", line 1, in <module>
    File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 2, in <module>
    from setuptools.extension import Extension, Library
    File "/usr/lib/python2.7/site-packages/setuptools/extension.py", line 5, in <module>
    from setuptools.dist import _get_unpatched
    File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 7, in <module>
    from setuptools.command.install import install
    File "/usr/lib/python2.7/site-packages/setuptools/command/__init__.py", line 8, in <module>
    from setuptools.command import install_scripts
    File "/usr/lib/python2.7/site-packages/setuptools/command/install_scripts.py", line 3, in <module>
    from pkg_resources import Distribution, PathMetadata, ensure_directory
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 74, in <module>
    import parser
    File "parser.py", line 77, in <module>
    from ruamel.yaml.error import MarkedYAMLError # type: ignore
    File "/usr/lib64/python2.7/site-packages/ruamel/__init__.py", line 5, in <module>
    __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 安装软件包,因为这可能会在更新/覆盖系统中的内容时破坏您的系统 site-packages/dist -packages 目录。下面提供的解决方案仅在系统目录中安装 pip/wheels/virtualenv ,据我所知是安全的,但如果有必要,也有办法解决这个问题。

您还应该考虑使用提供的轮子来安装软件包。这样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,只需在其中添加您的应用程序即可。

此处使用的下载内容截至 2017 年 1 月 7 日,如有必要,您可以使用浏览器(在在线系统上)获取更多最新内容。

关于python - 如何离线安装ruamel.yaml python库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42644227/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com