AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1523218
Accepted
yabberth
yabberth
Asked: 2020-02-07 01:47:51 +0800 CST2020-02-07 01:47:51 +0800 CST 2020-02-07 01:47:51 +0800 CST

如何通过 pip3 离线安装所有依赖项的 python 包?

  • 772

首先,我设法在无法访问 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 包及其所有依赖项脱机?

感谢您的帮助和最诚挚的问候。亚伯斯

python3 installation
  • 2 2 个回答
  • 32288 Views

2 个回答

  • Voted
  1. Best Answer
    Anaksunaman
    2020-02-07T20:32:38+08:002020-02-07T20:32:38+08:00

    有没有办法告诉pip使用下载的文件来安装依赖项,或者是否有更简单的方法来安装特定的 python 包及其所有依赖项脱机?

    我相信您正在寻找的是--no-index和--find-links选项pip install。根据官方pip install选项文档:

    --无索引

    忽略包索引(只查看 --find-links URL)。

    -f,--查找链接

    如果是 html 文件的 url 或路径,则解析指向档案的链接。如果本地路径或 file:// url 是目录,则在目录列表中查找存档。

    使用这些选项,您可以执行 ex。本地安装:

    pip3 install --no-index --find-links /some/path <package name>
    

    或远程安装(例如通过 HTTP):

    pip3 install --no-index --find-links http:\\remotes\server <package name>
    

    在您的情况下,您应该能够简单地使用ansible包名称 ex.:

    pip3 install --no-index --find-links /some/path ansible
    
    pip3 install --no-index --find-links http:\\remotes\server ansible
    

    如果您愿意,可以使用完整的文件名:

    pip3 install --no-index --find-links /some/path ansible-2.9.4.tar.gz
    
    pip3 install --no-index --find-links http:\\remotes\server ansible-2.9.4.tar.gz
    

    假设所有必需的依赖项都位于同一位置(如您的原始问题中所列),它们应该正常安装(即无需手动按顺序安装每个依赖项)。


    要求

    另一种选择可能是使用正确的依赖项安装顺序制作需求文件,例如:

    前任。要求.txt

    /path/to/MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl 
    /path/to/Jinja2-2.11.1-py2.py3-none-any.whl 
    /path/to/ansible-2.9.4.tar.gz
    # ...                          
    

    然后使用例如pip3 install -r requirements.txt安装列出的软件包。您也可以再次使用例如 HTTP 链接:

    前任。要求.txt

    http:\\remotes\server\MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl 
    http:\\remotes\server\Jinja2-2.11.1-py2.py3-none-any.whl 
    http:\\remotes\server\ansible-2.9.4.tar.gz
    # ... 
    

    这里明显的缺点是,假设一个包依赖于另一个包,您已经需要知道某些包需要安装的顺序。


    其他 URL 选项

    您可能还想查看文档的版本控制系统 (VCS) 部分,其中提供了与 VCS 链接(即 Git、Mercurial、Subversion 和 Bazaar)pip install结合的示例。pip install


    参考

    点安装

    点安装(选项)

    • 2
  2. Reda Salih
    2020-02-07T14:34:57+08:002020-02-07T14:34:57+08:00

    由于您不需要完整的镜像,因此我建议使用python-pypi-mirror:

    1- 在具有 Internet 连接的服务器上使用 pip 安装 python-pypi-mirror。

    2- 在此服务器上安装 http.server python 模块。

    3- 创建一个目录来为您的 pip 包提供服务。

    4- 使用 python-pypi-mirror 将所需的包下载到最近创建并公开为 http 服务器的目录(它将包含其所有依赖项)。

    5-远程安装所需的软件包。

     pip3 install --trusted-host <http_server> -i http://<http_server>:<http.server_default_port>/simple <package_name>
    

    您将在此处找到所有需要的说明

    • 1

相关问题

  • Windows 10 pip 在安装 Python 3.6 时不安装 Python2 包

  • 如何设置默认工作目录路径?

  • 包枕头已安装但无法导入

  • Matplotlib - 底图安装错误

  • 从源代码构建 Python 3.7

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve