【发布时间】:2010-04-20 21:16:34
【问题描述】:
我需要在没有安装 Python 的机器上运行 Python 脚本。我使用 Python 作为软件包的一部分,Python 在用户不注意的情况下在幕后运行。
我的做法如下。
- 复制 python.exe、python26.dll、msvcr90.dll 和 Microsoft.VC90.CRT.manifest
- 将LIBs目录下的所有目录压缩成python26.zip
- 将所有必要的 dll/pyd 文件复制到 DLL 目录中。
似乎可以,但是当我将python26.zip更改为其他名称(例如pythonlib.zip)时,它再也找不到Python库了。
- 问题 1:python26.zip 名称背后的魔力是什么? Python 会自动在 python26.zip 中找到一个库,但名称不同?
- 问题 2:如果我在 python.exe/python26.dll 所在的同一目录下有 python26.zip,我不需要添加路径
sys.path.append(python26.zip 的路径)。对吗?
Python 有内置库,sys 就是其中之一。我认为我可以使用sys.path 指向我需要的 ZIP 文件中的任何 Python 库。但是,令人惊讶的是,如果我将库名称用作 Python26.zip,它就可以正常工作。为什么会这样?
【问题讨论】:
-
小心手动安装 Python。你可能会让它运行得很好,但是安装任何额外的库是后面的一个主要痛苦。
-
你能用py2exe打包你的应用吗? (它将在 exe 中包含解释器的副本)
-
如果名称没有硬编码,Python 将如何找到 zip?但更重要的是,你为什么需要改变它?
-
我正在尝试做同样的事情,但我被困在第 1 步。如何复制 Microsoft.VC90.CRT.manifest?
标签: python installation