【问题标题】:Running python script without installed libraries在没有安装库的情况下运行 python 脚本
【发布时间】:2015-08-21 21:19:15
【问题描述】:

我有使用scipynumpy 函数的工作Python 脚本,我需要在安装了Python 但没有模块scipynumpy 的计算机上运行它。我该怎么做? .pyc 是答案还是我应该做一些更复杂的事情?

注意事项:

【问题讨论】:

  • 为什么不能在新环境中安装这些模块?
  • 当然可以,但我对如何不这样做很感兴趣。
  • 没有这些库是行不通的。这与.pyc 文件无关。
  • 如何运行缺少依赖项的脚本?即使您跳过导入此类库的失败并继续,最终您也会无法执行某些命令。
  • 并非总是可以在计算机上安装软件库(例如,如果雇主不授予其员工管理权限)。因此希望打包所有必要的代码,以便它可以在 python 解释器上运行,而不依赖于外部依赖。

标签: python python-2.7 python-module


【解决方案1】:

看看Nuitka。如果您能够编译您的代码(不一定是可能或简单的任务),您将得到您想要的。

【讨论】:

    【解决方案2】:

    Python 首先将程序“编译”成字节码,然后通过解释器抛出该字节码。

    因此,如果您的代码都是 Python 代码,您将能够一次性生成字节码,然后让 Python 运行时使用它。事实上,我见过这样的项目,开发人员只是查看了字节码规范,并实现了一个字节码解析引擎。它非常轻巧,因此可用于例如“芯片上的 Python”等。

    问题来自未完全用 Python 编写的外部库(例如 numpy、scipy)。

    Python 提供了一个 C-API,允许您创建(使用 C/C++ 代码)在它看来是 Python 对象的对象。这对于加速、与硬件交互、使用 C/C++ 库非常有用。

    【讨论】:

    • 用 Python 编写的外部库也是一个问题,因为您的应用程序的字节码不包含它们。
    【解决方案3】:

    这是不可能的。

    pyc-file 只不过是编译成字节码的 python 文件。它确实包含此文件导入的任何模块!

    此外,numpy 模块是用 C(和一些 Python)编写的扩展。其中很大一部分是在运行时加载到 Python 中的共享库。你需要这些才能让 numpy 工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-03
      • 2018-12-10
      • 2016-11-26
      • 2016-04-17
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      相关资源
      最近更新 更多