在Win32上不使用安装程序安装Python 2.6

2024-04-26 21:12:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在没有安装Python的机器上运行Python脚本。我使用Python作为软件包的一部分,Python在幕后运行,用户不会注意到它。

我所做的如下。

  1. 复制python.exe、python26.dll、msvcr90.dll和Microsoft.VC90.CRT.manifest
  2. 将LIBs目录中的所有目录压缩为python26.Zip
  3. 复制dll目录中所有必需的dll/pyd文件。

它似乎可以工作,但是当我将python26.zip改为其他名称(如pythonlib.zip)时,它就找不到Python库了。

  • 问题1:python26.zip名称背后的魔力是什么?Python会自动在python26.zip中找到一个库,但不会使用不同的名称?
  • 问题2:如果python26.zip位于python.exe/python26.dll所在的同一目录,则不需要添加路径sys.path.append(python26.zip的路径)。对吗?

Python有内置的库,而sys就是其中之一。我想我可以使用sys.path来指向ZIP文件中需要的任何Python库。但是,令人惊讶的是,如果我使用的库名称是Python26.zip,它就工作了。为什么会这样?


Tags: 文件path用户路径目录脚本名称机器
3条回答

我已经使用PortablePython一年了,我发现它很好,因为它正在我锁定的工作笔记本上工作。

有Python 2.5.4、2.6.1和3.0.1版本。

来自Sylvain Pointeau's blog

The procedure is actually very simple, just download the msi installer from http://www.python.org/getit/ and type the command:

C:\development\apps>msiexec /a python-3.3.2.msi /qb TARGETDIR=C:\development\apps\python33

他的示例使用msiexec(也就是您UniExtract people的MSI管理安装程序)强制提取到TARGETDIR。您会注意到那里的是一个您删除的内部安装程序。

编辑:你也可以让它安静下来,但是每次你想用python的时候都这样做看起来很愚蠢。只需解压缩到tempdir,然后在卸载时进行清理。

我不知道这有多老了!:天

我查看了Python解释器的源代码,并做了一些实验。我发现不管怎样,Python解释器都会在“PYTHONXXX.DLL+PYTHONXXX.zip目录”前面加上前缀。XXX是Python解释器的版本。

因此,如果在python26.dll所在的目录中存在python26.zip。我可以自动使用所有的Python库。

相关问题 更多 >