【问题标题】:How can I run a Python project on another computer without installing anything on it?如何在不安装任何东西的情况下在另一台计算机上运行 Python 项目?
【发布时间】:2021-06-23 13:20:30
【问题描述】:

我有一个 Python 项目,它有一堆依赖项(在我的 VirtualEnv 中)。我需要在我的学校计算机上运行我的项目以进行演示。我的学校计算机没有安装 python,假设也没有 Internet 连接来安装它。我在Windows 10中编写了程序,学校电脑运行的是Windows 7。

到目前为止,我已经查看了这些解决方案,这也是我认为它们可能不起作用的原因。

  1. 复制并粘贴我的虚拟 Env - 不起作用,因为 venv 有自己的结构,并且在其路径中包含我的用户名,它将在其他系统中查找。
  2. 使用 Py2Exe。我有一个 Exe 文件,我现在可以在运行 Windows 10 的其他系统上运行,而无需它们有 python 或我的任何包。但我不确定 VC++ 依赖项是否会出现在 Windows 7 中。它可能还有其他一些我不能冒险的奇怪问题。
  3. 码头工人。我不熟悉 Docker,但如果这恰好是唯一的方法,我可以做到。

如何在该计算机上运行 python 文件?

另外请注意,我不会有时间在其他系统中乱搞。理想情况下,我必须插入我的 USB 并打开文件才能运行它。如果您认为没有解决方案,请告诉我。

谢谢!

【问题讨论】:

    标签: python python-3.x windows pip virtualenv


    【解决方案1】:

    我看到了两个选项。

    1. 使用在线 IDE 和 Python 解释器(假设您没有互联网来下载 Python,但通常有互联网)。我建议replit

    2. 使用可移植版本的 Python。这些在official website 中可用,被称为“Windows 可嵌入包”。您可以测试将其下载到 USB 并在没有 Python 的计算机上运行;它应该工作。

    【讨论】:

    • 我应该如何在那个版本的 python 中安装库?它运行,但当我尝试在其上安装 pip 时没有运行。
    • 用pip做不到。在您的电脑中安装模块,并将它们添加到嵌入式版本。转到您的 PCPythonPath\Lib\site-packages 并复制您需要的那个。然后转到嵌入式,在 PortablePythonPath 中创建 Lib 文件夹并将模块复制/粘贴到那里。然后将 Lib 添加到文件 PortablePythonPath\pythonXX._pth。如果这解决了您的问题,请标记为已解决。
    • python38.zip/n ./n Lib/n # Uncomment to run site.main() automatically/n #import site是我的_pth文件,lib文件夹和这个文件在同一个目录下,还是不行
    • 我添加了新行,但它不起作用。我会尝试谷歌搜索
    • 是的,它终于可以工作了,我确实有更多错误,Tkinter 在我复制它时不起作用,但我想这与当前问题无关。关键是在完全相同的基础 python 版本中安装其他库的确切版本,然后将它们复制粘贴到嵌入式 Lib 路径中。
    【解决方案2】:

    您可以使用 PyInstaller 从您的代码中生成一个 exe 文件。它无需安装即可运行。

    或者您可以查看WinPython 发行版,它是可移植的,并且预装了多个工具和软件包。

    请注意,Windows 7 仅支持 Python 至 3.8 版。 3.9 仅在 Windows 10 上受支持,并且会在不提示您的情况下静默运行失败。

    【讨论】:

    • 我安装了 Winpython,但似乎无法在其中安装其他模块。 winpythons 文档中给出的方法似乎也不起作用。如何在上面安装软件包?
    • 我通常创建一个新的venv,然后在venv中使用pip install
    【解决方案3】:

    尝试将 python 作为可移植版本。

    • 下载python Windows可嵌入包(zip包)并将其解压缩到您的闪存驱动器。 https://www.python.org/downloads/windows/
    • 在解压的python文件夹中,按shift键+右键选择打开命令窗口(windows 7)/在此处打开powershell窗口(windows 10)选项。
    • 输入“./python”并按回车键。

    【讨论】:

    • 如何在这个嵌入式包中安装模块?我试过了,但找不到办法。
    【解决方案4】:

    我使用https://colab.research.google.com。它可以在任何计算机上运行,​​但某些代码无法在那里提交。

    【讨论】:

    • 但是它需要在另一台计算机上连接互联网才能运行代码,这将不可用。
    【解决方案5】:

    使用 auto-py-to-exe 将该 python 文件转换为 .exe 文件。这会将您的 .py 转换为可以在任何地方运行的 .exe 文件。

    要使用 auto-py-to-exe,只需在终端执行以下命令 pip install auto-py-to-exe。

    现在在终端上写入 auto-py-to-exe 并按 Enter。选择要在任何地方执行的 python 文件,然后单击将 .py 转换为 .exe,您将获得包含 .exe 文件的文件夹。把这个文件夹转移到任意一台电脑上,只要点击文件夹里面的.exe文件,不管电脑没有安装python或者pycharm,程序都会开始正常执行。

    【讨论】:

      【解决方案6】:

      这就是我将 Windows Python 项目从源计算机克隆到没有 Internet 连接且未安装 Python 的目标计算机的方法。

      感谢 conda-pack 工具 (https://conda.github.io/conda-pack/)。

      在源机器上

      安装 Anaconda (https://www.anaconda.com/products/individual)。

      然后在 Anaconda 提示符下键入以下命令。

      conda activate
      conda update -c defaults conda
      conda install conda-pack
      conda create -n <my_env_name> python=<python_version_number>
      conda activate <my_env_name>
      # if using Python Windows extensions:
      conda install pywin32
      

      现在使用 conda 或 pip (https://www.anaconda.com/blog/using-pip-in-a-conda-environment) 安装 Python 项目所需的包。 例如“conda install ”或“pip install ”。

      最后将所有内容导出为 zip 文件:

      # Pack Python environment my_env_name into my_env.zip
      conda pack -n <my_env_name> -o my_env.zip
      

      在目标机器上

      源计算机的操作系统必须与目标计算机的操作系统匹配。这意味着在 Windows 上构建的环境无法迁移到 Linux。

      解压 my_env.zip,然后从命令提示符执行以下命令。

      call Scripts\activate.bat
      conda-unpack
      # At this point the Python environment is exactly as if you installed it here directly
      

      【讨论】:

      • 这似乎是一个很酷的方法,但是 1. 如果你从 win11 更改为 win7 或 win10 是否有效。 2. 它只适用于 pip 吗? 3. 我需要在目标上安装anaconda吗
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      相关资源
      最近更新 更多