【问题标题】:xcopy python deploymentxcopy python部署
【发布时间】:2011-02-23 15:56:53
【问题描述】:

我是 python 新手,正在编写我的第一个程序。我希望在我完成后能够在 windows 或 mac 机器上从源代码运行程序。我的程序依赖于 3rd 方模块。

我阅读了有关 virtualenv 的信息,但我认为它对我没有帮助,因为它说它不可重定位且不可跨平台(请参阅 使环境可重定位 http://pypi.python.org/pypi/virtualenv )。

最好的方案是在我的项目中本地安装第 3 方模块,也就是 xcopy 安装。

如果 python 不能轻易支持这一点,我会感到非常惊讶,尤其是因为它促进了简单和无摩擦的编程。

【问题讨论】:

    标签: python module installation virtualenv


    【解决方案1】:

    你可以做你想做的,你只需要确保包含你的第三方模块的目录在 python 路径上。

    不需要在系统范围内安装模块。

    【讨论】:

    • 我想我可以通过我的脚本以编程方式将当前目录包含在 python 路径中。在这种情况下,这是一个很好的解决方案。
    • 这有效:我做了 sys.path.append('.') import 并且它有效。一件事是必须从 tar.gz 存档中解压缩打包的内容。我听说 python 可以处理 packages.tar.gz 存档,但我无法让它工作。有什么帮助吗?
    【解决方案2】:

    注意,虽然使用 py2exe 打包您的整个应用程序可能不是一个选项,但您可以使用它来制作一个简单的启动器环境。您使用导入您的模块/包/任何内容创建一个脚本并启动 main() 入口点。将其与 py2exe 打包,但将您的应用程序代码保留在此之外,如 python 代码或鸡蛋。我在阅读 .pth 文本文件时执行了类似的操作,以了解要添加到 sys.path 的路径以导入我的应用程序代码。

    【讨论】:

      【解决方案3】:

      简单地说,python 通常不是这样工作的。模块在站点范围内安装并以这种方式使用。你熟悉 pip 和/或 easy_install 吗?那些 + pypi 让您无论需要什么都可以自动安装依赖项。

      如果你想创建一个独立的可执行文件,通常你会使用 py2exe、py2app 或类似的东西。那么你就完全不依赖python了。

      【讨论】:

      • 太糟糕了,它不能像这样工作。看到创建包或任何东西是多么容易,人们只能想知道为什么如果没有站点范围的安装就不能轻松地从代码中引用另一个模块。将程序转换为 exe 不是很好,因为我喜欢动态修改程序的事实。
      • 可重定位和不可重定位的虚拟环境也可以工作。但是您仍然以相同的方式安装软件包。它们只是被安装到~/somenv/lib/python2.x/site-packages/ 而不是/usr/lib/python2.x/site-packages 之类的东西上。当然,对于许多软件包,您可以自己管理源代码并保留本地副本。但为什么? Python 可以为您处理。
      • @chmullig.. relocatable 不适用于 Windows,所以它不是一个选项。
      【解决方案4】:

      我还发现了zc.buildout,它可以用来自动包含依赖项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 2012-04-08
        • 2010-12-01
        • 1970-01-01
        相关资源
        最近更新 更多