在离线计算机上安装 PyInstaller?

在离线计算机上安装 PyInstaller?

我需要离线安装 PyInstaller。我已经有 setuptools,但它仍然试图下载它。我做错了什么?如果是因为--ignore-installedpip 命令,我该如何关闭它?

C:\Users\[user]\Desktop\software\pybaries3>pip install C:\Users\[user]\Desktop\software\pybaries3\PyInstaller-3.6
Processing c:\users\[user]\desktop\software\pybaries3\pyinstaller-3.6
  Installing build dependencies ... error
  Complete output from command c:\users\[user]\appdata\local\programs\python\python36-32\python.exe -m pip install --ignore-installed --no-user --prefix C:\Users\[user]\AppData\Local\Temp\pip-build-env-2m5pzlvw --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=38.2.5 wheel:
  Collecting setuptools>=38.2.5
    Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x02F69A10>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)': /simple/setuptools/
    Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x02F69AD0>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)': /simple/setuptools/
    Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x02F69A90>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)': /simple/setuptools/
    Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x02F69B10>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)': /simple/setuptools/
    Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x02F69BD0>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)': /simple/setuptools/
    Could not find a version that satisfies the requirement setuptools>=38.2.5 (from versions: )
  No matching distribution found for setuptools>=38.2.5

  ----------------------------------------
Command "c:\users\[user]\appdata\local\programs\python\python36-32\python.exe -m pip install --ignore-installed --no-user --prefix C:\Users\[user]\AppData\Local\Temp\pip-build-env-2m5pzlvw --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=38.2.5 wheel" failed with error code 1 in None

C:\Users\[user]\Desktop\software\pybaries3>pip list
Package        Version
-------------- -------
pip            18.1
pywin32-ctypes 0.2.0
setuptools     40.6.2

C:\Users\[user]\Desktop\software\pybaries3>

答案1

我需要离线安装 PyInstaller。

先决条件

下载安装 PyInstaller 所需的所有相关模块的副本。pip通常联系Python 包索引(PyPI)来收集这些文件,但你可以自己手动收集它们。这些包括:

就您而言,您可能可以跳过 PyInstaller、setuptools 和 pywin32-ctypes,但您可能仍需要至少 future、altgraph 和 pefile 的副本。还请注意,尽管您的 setuptools 版本可能可以工作,但它不是最新的。

如果您不想从各自的 PyPI 页面(链接)单独下载上述必要的文件,您可以简单地使用例如:

pip download pyinstaller

从具有并能够连接到 PyPI 的 PCpip上下载,以便在本地保存 PyInstaller 及其依赖项。然后,您可以根据需要将这些文件传输到离线计算机。


请注意,虽然通常最好使用与离线机器上使用的相同版本的 Python 相关联的download副本来模块pip,但在这种情况下它应该不那么重要(只要您不使用 Python 2),因为上面的特定文件目前都应该与大多数版本的 Python 3 兼容。


安装

在离线机器上,将上面下载的所有文件放入同一个文件夹中,例如:

C:\Users\[user]\Desktop\software\pybaries3

然后pip使用--no-use-pep517--no-index--find-links选项运行,例如:

pip install --no-use-pep517 --no-index --find-links C:\Users\[user]\Desktop\software\pybaries3 C:\Users\[user]\Desktop\software\pybaries3\PyInstaller-3.6.tar.gz

不要忘记将tar.gzPyInstaller 的 eg 文件扩展名包含在内(因此使用 ex. PyInstaller-3.6.tar.gz,而不仅仅是PyInstaller-3.6)。

您可以阅读更多关于这些的内容pip 安装选项以及更一般的关于PEP 517在给出的相应链接中,但作为快速摘要:

答案2

用于--no-build-isolation防止 pip 插入---ignore-installed。如果缺少任何依赖项,安装仍然会失败。如果您需要帮助获取离线使用的软件包,请参阅@anaksunaman 的回答。

相关内容