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

pro*_*eek 19 python installation install

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

我做的如下.

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

它似乎工作,但当我将python26.zip更改为pythonlib.zip等其他名称时,它再也找不到Python库了.

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

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

das*_*zul 25

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

有一个Python 2.5.4,2.6.1和3.0.1版本.

  • "便携式Python不再开发" (5认同)

小智 15

来自Sylvain Pointeau的博客:

该过程实际上非常简单,只需从http://www.python.org/getit/下载msi安装程序 并输入命令:

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

他的例子使用msiexec(也就是你的UniExtract人的MSI管理安装程序)强制提取TARGETDIR.你会发现,是你删除一个内部安装程序.

编辑:你也可以让它沉默,但每次你想使用python这样做似乎是愚蠢的.只需解压缩到tempdir然后在卸载时清理它们.

PS:我没看到这多大了!:d


pro*_*eek 10

我查看了Python解释器源代码,并做了一些实验.而且我发现Python解释器无论如何都会在"PYTHONXXX.DLL + pythonXXX.zip的目录"前面加上.XXX是Python解释器的版本.

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


Zen*_*dix 6

另一种选择是安装WinPython.它使用安装程序,但不需要管理员权限(在Windows 7上测试).与Portable Python不同,它甚至还有Python 3.3.5版本.