如何在不稳定的连接中安装 Python 包

如何在不稳定的连接中安装 Python 包

我一直试图安装 tensorflow,但没有成功。我怀疑原因是网络连接不稳定,因为我在尝试安装 tensorflow 前几分钟就成功安装了一个较小的包 (openCV)。题外话,这是 Pycharm 中安装命令的输出:

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fe49aeff2e0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fe49aeff610>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fe49aeff8b0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fe49aeffa60>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fe49aeffc10>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow/
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
ERROR: No matching distribution found for tensorflow

从输出来看,Pycharm(或 Pycharm 将任务委托给的任何组件)在放弃之前只尝试了五次。是否可以更改或删除停止前失败尝试次数的限制?

不确定这是否相关,但 Pycharm 中使用的 Python 解释器是版本 3.10.6

答案1

简短回答:不要。只需将其安装在具有稳定连接的某些机器上并复制生成的缓存文件即可。

长答案:你在这里尝试做的事情基本上是不可能的。你需要下载文件来安装库,如果你的网络不稳定,你就无法下载文件,从而无法安装库。

即使文件以某种方式成功下载,由于您的连接不可靠,文件的完整性很可能受到损害,并且您仍然无法从损坏的文件中安装。

但在连接稳定的计算机上,上述情况不是问题。

因此,您只需要使用具有稳定网络的计算机下载文件,然后使用 USB 存储设备将文件移动到您的计算机即可。

pip可以从本地文件安装库,因此您不需要通过不可靠的网络下载文件。

如果它是一些没有依赖项的库,您只需从另一台计算机上的 pypi 下载源代码(或预编译的轮子),然后将其离线传输到您的计算机,然后 pip 安装本地文件。

但是由于您尝试安装具有大量依赖项(其中一些依赖项本身可能具有依赖项)的大型库,因此这将不起作用。

您需要编写一个程序,按依赖项数量对库进行排序,然后先安装没有依赖项的库,然后安装已经安装依赖项的库,依此类推......

但是还有另一种方法:pip 下载的每个文件都存储在缓存目录中,当运行 pip install 时,它会先检查文件是否被缓存,并且只有在文件未缓存(或明确告知不使用缓存)时​​才会下载该文件,因此如果有缓存文件,它将使用缓存文件而不是下载。

因此,您所要做的就是找到一台网络连接良好的计算机,然后安装 Python,然后安装库。现在这是关键部分:您需要在计算机上找到 pip 缓存目录,然后将目录中的所有内容复制到您的 USB 设备,然后使用 USB 设备将缓存目录的内容移动到您的 pip 缓存目录。

然后您可以正常安装,因为所有内容都已缓存,pip 将只使用缓存的文件而无需下载。

但需要注意的是,计算机的操作系统和 Python 版本可能必须与您的相同。

相关内容