正在离线安装 Python 2.7.16 和软件包。对依赖性的担忧

Installing Python 2.7.16 and packages offline. Concerns with dependencies

问题

我正在尝试将 Python 2.7.16、openpyxl 和 pyinstaller 安装到 Windows 10 机器上,该机器出于安全原因处于脱机状态。澄清一下,我在那里有一个映射的网络驱动器,我可以从中传输我需要使用的文件。

问题

解决此问题的最佳方法是什么?我目前有一个直接来自他们网站的 .msi Python 安装文件。我需要的包被打包为 .tar.gz 文件。我目前在我的 windows 机器上有这些,但在我确定我需要做什么之前不想继续。另外,我需要为依赖项做些什么吗?如果是这样,我如何找到我需要的包的依赖项?

旁注

Python版本(2.7.16)自带pip。不确定这是否有所作为。下载和传输东西需要我询问我的管理员,让他下载文件,然后将它们传输到我的驱动器,这样我就可以将它们放在我的电脑上。如果可以的话,我想尽可能少地尝试这样做。

有用链接

Python: https://www.python.org/downloads/release/python-2716/

openpyxl: https://pypi.org/project/openpyxl/#files

pyinstaller: https://pypi.org/project/PyInstaller/#files

我的解决方案是寻找 python 和 pip 安装程序的离线版本,然后按照 this guide

还有一个很好的提示:在断开连接的单独电脑上尝试完成整个过程(安装所需软件)并进行安装。记下你必须做的一切才能让它工作,并在你最初想要的机器上使用这些指令。这将避免您在目标机器上安装时不得不来回摸索。

请注意,我不知道 python 是如何工作的,这只是我作为程序员的预感。

在离线机器上安装 Python 和软件包:综合指南


环境

让我们首先定义本指南可能会有很大用处的环境。如果您的情况可以用以下一项或多项来描述,那么按照本指南您可能会取得很好的结果...

  1. 您正在开发的机器处于离线状态。 (没有连接到互联网)
  2. 您需要在完全离线的机器上运行Python进行开发

如果这听起来像您,请阅读以下案例,其中一些小细节可能会对您的成功产生重大影响tar。

案例一:

  1. 不允许将任何外部媒体设备插入离线机器。这包括但不限于 USB、CD、软盘或任何其他可能有助于您将 Python 文件传输到脱机计算机的可移动媒体。
  2. 被允许映射网络驱动器(本地网络上的其他地方)。这将解决第一个提到的可移动媒体问题。

回答:在这种情况下,请按照指南进行操作,因为这是我的情况,我会详细解释我是如何解决我的问题的。

案例2:

  1. 没有物理方法可以将文件传输到离线的开发机器上。运行

答案:如果是这种情况,您需要联系在您的开发机器上处理软件的管理团队。引导他们阅读本指南以继续。

让我们得到 Started

警告 A: 必须在具有 Internet 连接的计算机上执行以下操作。在没有互联网连接的情况下,无法从任何网站下载内容。

警告 B: 有一种更长的方式,还有一种更短的方式来执行以下操作。为避免走更长的路,您必须能够在另一台在线计算机上安装 python。这可以是您用来下载软件包和 python 版本的同一台机器,甚至可以是家用机器。这可以是世界上任何在互联网上的机器。它的唯一目的是帮助您识别每个包的依赖关系。

正在安装Python

  1. 访问 python 网站并确定所需的版本。本指南建议使用 2.7.9 及更高版本。下载适用于您的特定系统的文件。

Python 2.7.9 : https://www.python.org/downloads/release/python-279/

Python 3.7.3 : https://www.python.org/downloads/release/python-373/

我提供 Python 2.7.9 的原因是因为它是 pip(包管理器)附带的最早的 2.7.x 版本。

  1. 访问 python 包索引找到您将在 python 项目中使用的包。 https://pypi.org/
  2. 搜索您需要的包,转到下载,并获取 (.tar.gz) 文件。 不是 .whl 文件,除非您知道自己在用这些文件做什么。
  3. 提示:如果您想跟踪正在安装的软件包,我建议您将它们全部放在一个您可以找到的文件夹中,或者将它们写在纸上。
  4. 解压 .tar.gz 包文件。你可以去掉 .tar.gz 一旦你解压它们,因为它们不再需要了。
  5. 安装您在上面的第 1 步中为您的系统下载的 python 版本。

(这可能只是 运行 为 windows 打包 .msi 文件或为 linux 解压一些文件) 如果你不确定如何,只是看看这个精彩的指南 https://realpython.com/installing-python/

现在您应该可以转到您的终端并键入 "python" 并打开 python 解释器。如果你得到 "cannot find python command" 你需要设置你的路径变量。

Windows指南:https://geek-university.com/python/add-python-to-the-windows-path/

Linux 指南:https://www.tutorialspoint.com/python/python_environment.htm

您的 python 安装完成!您的软件包也应该可以安装了!

正在安装 Python 包

这里您需要知道的是,大多数 python 包都具有依赖项,即在安装之前需要安装的其他包。如果您需要有关依赖关系的更多解释,请阅读此处:https://www.fullstackpython.com/application-dependencies.html

在继续之前,请确保将 Python/Scripts 文件夹也添加到您的路径变量中,否则 pip 将无法工作。 按照此 link 获取说明。 https://appuals.com/fix-pip-is-not-recognized-as-an-internal-or-external-command/

  1. 在您联网的机器上使用 pip install [package_name] 为您需要的每个包安装包,然后执行 pip freeze 查看所有已安装的包。
  2. 一旦您可以看到所有已安装的包,其中将包括您 运行 pip install 的包的依赖项,您需要手动下载 t来自 python 包索引 https://pypi.org/ 的这些依赖项就像您对常规包所做的那样。

离线

一旦你确定了你需要的所有包,以及它们的所有依赖项,你将需要下载它们,解压所有它们,并将它们移动到一个文件夹中,我称之为 "OFFLINE_SETUP_FOLDER" .

要明确: 我们之前安装的包只是为了找出我们将需要的依赖项。您不必 re-download 在 运行 宁 pip install 之前已经下载的软件包。 您应该只需要下载您在 pip freeze 命令中找到的依赖项。

  1. 最后,您需要将 python 安装文件复制到 "OFFLINE_SETUP_FOLDER" 中,无论是 windows 的 .msi 文件还是 .tar 文件 linux.

  2. 您的 "OFFLINE_SETUP_FOLDER" 应包含以下...

下面的package可以是你下载的任意一个包的名字,package1apackage1b中的a和b只代表该包的依赖。这些文件名只是包的示例

  • python.msi(python 的安装文件)
  • /package1(普通包文件夹)
  • /package1a(包依赖文件夹)
  • /package1b(包依赖文件夹)
  • /package2(普通包文件夹)
  • /package3(普通包文件夹)
  • /package3a(包依赖文件夹)


  1. 完成后,您需要将该文件夹移动到完全离线的计算机上。
  2. 然后 运行 像以前一样安装 python 并将其安装在机器上。不要忘记设置路径变量。如果需要,请参阅安装 Python 部分。
  3. 打开你的终端或者CMD和CD进入"OFFLINE_SETUP_FOLDER".
  4. 现在您需要将 CD 放入每个单独的包文件夹中,然后 运行 此命令:python setup.py install 并让它 运行。
  5. 如果包安装失败,那是因为其中一个依赖项没有安装。如果是这种情况,则 CD 进入所说的依赖项丢失,并且 运行 python setup.py install 首先在那里。
  6. 不断重复这些步骤,直到安装完所有包和依赖项。

关于在离线机器上安装 python 的 python 指南到此结束。希望对您有所帮助:)