【问题标题】:Python create standalone .pyc filePython 创建独立的 .pyc 文件
【发布时间】:2014-06-04 11:27:52
【问题描述】:

是否有任何方法可以创建包含所有模块的独立 .pyc 程序,我只是不想在要运行该程序的每台计算机上安装所有模块。如果这是不可能的,我还能做什么?

【问题讨论】:

  • .pyc 文件不是编译版本,它只是优化的字节码以加速模块加载。所以,它不会像你期望的那样工作。为了让“所有模块都在里面”,您可能需要使用 py2exe 之类的东西将 python 脚本转换为可执行文件

标签: python compiler-construction compilation executable


【解决方案1】:

您可以在项目中本地安装 python 包,使用命令:

pip install -t <destination_folder> <package_name>

例如:

pip install -t . mock

将模拟库安装到当前目录。然后,当您在该文件夹中的文件中执行import mock 时,您将获得本地文件。

您还可以将所有包安装到名为 lib 或类似的项目的子文件夹中,而不是在导入该包调用之前:

import sys; sys.path.insert(0, path_to_lib_folder)

【讨论】:

  • 应该提到的是,通过在项目中嵌入包,您需要在发布新版本时更新它们。对于可能获得安全修复的东西,例如密码学或 passlib,这可能是一个坏主意。
  • @otus 好话。但另一方面 - 它可以避免由不兼容的版本引起的错误。
  • 是的,但是 setup.py 中的 requiring a specific version 也是如此。
【解决方案2】:

您需要创建虚拟python环境

有两种方式:

  1. VirtualENV。它创建虚拟环境。因此,您可以在其中安装 python 模块,然后复制到另一台服务器。

  2. (推荐) Buildout。它还创建了虚拟环境。但是,您不需要安装所有东西并在每次需要时更新。您只需要编写简单的 buildout 配置并 buildout 为您安装所有内容并使其保持最新。 buildout 还可以安装可能不是基于 Python 的软件,例如某种数据库等。并且一切都将安装在本地虚拟环境中。

【讨论】:

    猜你喜欢
    • 2018-08-23
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2013-12-06
    • 2012-08-27
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多