从pypi下载python包及其依赖项以离线安装到另一台机器的最佳方法是什么?使用pip或easy_install是否有简单的方法来做到这一点?我试图在一个没有连接到互联网的FreeBSD盒子上安装请求库。


当前回答

下载tarball,将它转移到你的FreeBSD机器并提取它,然后运行python setup.py install,你就完成了!

编辑:在此基础上,您现在还可以使用pip安装焦油球。

其他回答

让我一步一步地介绍一下这个过程:

在连接到互联网的计算机上创建一个文件夹。

   $ mkdir packages
   $ cd packages

打开命令提示符或shell并执行以下命令: 假设你想要的包是tensorflow $ PIP下载tensorflow 现在,在目标计算机上复制packages文件夹并应用以下命令

  $ cd packages
  $ pip install 'tensorflow-xyz.whl' --no-index --find-links '.'

注意tensorflow-xyz。WHL必须替换为所需包的原始名称。

对于Pip 8.1.2,您可以使用Pip download -r request .txt将包下载到您的本地机器。

对于Windows,我使用了下面的东西

网络连接

1.创建任意名称的目录。用"repo"创建的

2.使用以下命令下载库(将下载而不是安装)

pip下载libraray_name -d"C:\repo"

pip download openpyxl -d"C:\repo"

然后您将发现多个.whl扩展名文件 复制requirements.txt中的所有文件名

没有互联网连接

现在将此文件夹和文件移动到没有互联网连接的PC并运行以下命令。

pip install -r requirements.txt --find-links=C:\repo --no-index

使用轮子编译包。

包:

$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ pip wheel -r requirements.txt --wheel-dir=$tempdir
$ cwd=`pwd`
$ (cd "$tempdir"; tar -cjvf "$cwd/bundled.tar.bz2" *)

复制tarball并安装:

$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ (cd $tempdir; tar -xvf /path/to/bundled.tar.bz2)
$ pip install --force-reinstall --ignore-installed --upgrade --no-index --no-deps $tempdir/*

注意轮二进制包不是跨机器的。

更多参考资料请访问:https://pip.pypa.io/en/stable/user_guide/#installation-bundles

在可以访问internet的系统上

pip download命令允许你下载软件包而不安装它们:

pip download -r requirements.txt

(在pip的以前版本中,这被拼写为pip install——download -r requirements.txt。)

在无法访问internet的系统上

然后你可以使用

pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt

在不访问网络的情况下安装那些下载的模块。