簡體   English   中英

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

[英]Install Python 2.6 without using installer on Win32

我需要在沒有安裝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,它就可以了。 為什么會這樣?

我已經使用PortablePython一年了,我發現它很棒,因為它正在我的鎖定工作筆記本上工作。

有一個Python 2.5.4,2.6.1和3.0.1版本。

來自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

我查看了Python解釋器源代碼,並做了一些實驗。 而且我發現Python解釋器無論如何都會在“PYTHONXXX.DLL + pythonXXX.zip的目錄”前面加上。 XXX是Python解釋器的版本。

因此,如果python26.zip與python26.dll在同一目錄中。 我可以自動使用所有的Python庫。

另一種選擇是安裝WinPython 它使用安裝程序,但不需要管理員權限(在Windows 7上測試)。 與Portable Python不同,它甚至還有Python 3.3.5版本。

另一個選擇可能是考慮PyInstaller ,它將創建跨平台的獨立Python應用程序。 從主頁:

PyInstaller是一個程序,可以在Windows,Linux和Mac OS X下將Python程序轉換(打包)成獨立的可執行文件。[...] PyInstaller的主要目標是與第三方軟件包兼容。開箱。 這意味着,使用PyInstaller,使外部包工作所需的所有技巧已經集成在PyInstaller本身中,因此不需要用戶干預。 您永遠不會被要求在wiki中查找技巧並對您的文件或設置腳本應用自定義修改。 例如,完全支持像PyQt和Matplotlib這樣的庫,而無需手動處理插件或外部數據文件。 查看我們的SupportedPackages兼容性列表。

py2exe將允許您將Python腳本編譯為Windows可執行文件。 它可能會或可能不會比PortablePython更好地工作,但是對於你需要為“幕后”程序分發的文件數量,它可能會更清晰一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM