【问题标题】:python: Can I run a python script without actually installing python?python:我可以在不实际安装 python 的情况下运行 python 脚本吗?
【发布时间】:2011-07-29 05:24:21
【问题描述】:

我有一些我写的 .py 文件想在不同的机器上运行。目标机器没有安装python,我不能按策略“安装”它。我能做的就是复制文件,运行我的东西,然后删除它们。

我尝试将我的开发 python 文件夹转移到目标机器并 cd 到 python 文件夹并运行python.exe /path/to/.py/file。它给了我一个错误,说 python.dll 没有注册。如果我注册的 DLL 可能会让我远离“违反政策”这一行。

有没有我可以在没有实际安装 python 的机器上完成运行 python 文件(现在试图让 py2exe 工作,但很痛苦)?

【问题讨论】:

    标签: python executable py2exe cx-freeze


    【解决方案1】:

    编辑: Portable Python 的开发已停止。我会尽快删除这个答案。

    查看Portable Python。这应该可以满足您的需求。

    当前版本(截至 2015 年 4 月)为 2.7.6 和 3.2.5

    【讨论】:

    • 看起来很有趣,但可能会显示 it supports three versions of Python 2.5.4, 2.6.1 and 3.0.1 的障碍。谢谢
    • 您的意思是您需要 2.7.1 或 3.1/3.2?我确信它们已经在开发中了。
    • 是的,对我来说是 2.7.1,但我会继续关注那个网站。谢谢
    • 我也在 2.7.1,所以我会留意它,但它现在帮不了我。也在看 cx_Freeze,但第一次射门有问题
    • 链接表明 Portable Python 不再被开发。 WinPython 可能是一个可行的选择。
    【解决方案2】:

    我决定选择cx_Freeze

    它创建了一个发行版,我可以简单地复制并移动到目标机器上。此外,它比 py2exe 使用起来容易得多;此外,它似乎仍在维护中(截至 2011 年 3 月 10 日),而 py2exe 开发看起来并不活跃。

    【讨论】:

    • 是否可以为打包脚本传递参数?使用 cx_freeze
    • 截至 2018 年 4 月,仍支持 cx_Freeze。我遇到的唯一问题是该示例说要调用他们的自定义脚本(放置在 Scripts 中),我必须在文件中添加一个 .py 扩展名,以便 Windows 7 识别并运行它。
    【解决方案3】:

    查看PyInstaller。它比 py2exe 更容易使用(至少对于简单的应用程序而言)。

    【讨论】:

    • 是否可以为打包脚本传递参数?使用 Pyinstaller
    • @pyd 是的,你可以在运行pyinstaller --onefile -c myscript.py时使用选项-c
    【解决方案4】:

    这是一个老问题,但一种替代方法是为 Python 创建一个虚拟环境,它可以像 python -m venv myenvname (Python 3.4) 一样简单。您可以以正常方式(例如 pip)将软件包“安装”到其中,而无需其他任何东西。您最终会得到一个可以在闲暇时移动/删除的文件夹。

    【讨论】:

    • 移动 venv 文件夹不会使其工作。您需要匹配发行版、操作系统等
    • 好吧,开枪。我想我很幸运。
    【解决方案5】:

    似乎 virtualenv 不允许您轻松地重新定位创建的虚拟环境文件夹。

    检查virtualenv User Guide。因此,将文件夹移至其他地方可能不起作用。 您是否尝试过使用 virtualenv 的重定位选项?

    【讨论】:

      【解决方案6】:

      WinPython 可能是您需要的。它需要使用安装程序解压,但解压后的文件可以在任何机器上直接运行,无需任何安装。

      截至 2015 年 10 月,它正在积极维护中。

      【讨论】:

      • 是否可以为打包脚本传递参数?使用 Winpython
      猜你喜欢
      • 2016-11-26
      • 2012-11-25
      • 2015-08-21
      • 2017-08-03
      • 2011-06-26
      • 2023-01-25
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多