標籤:

python3.5.1怎麼打包編譯?

開始一直時有時無的自學python3.x,突然有一天想,如果哪天用python寫個小程序需要傳給別人用,而別人也不一定安裝了python該怎麼辦呢,結果百度發現python有打包編譯工具,py2exe,czfree……pyinstall等,結果都試了,編譯時都出了問題,上網百度了半天也是沒找到結果,估計是對python3.5支持的不好吧,最後下載了golang,編譯相當的簡單,但畢竟自學了很久python,還是不想放棄,想問問有沒有用python3.5.1編譯成功過的。windows10,64位系統。


1. 並不是編譯,僅僅是打包

2. 打包的內容包括:一個python運行時,源碼轉換後的位元組碼,直接引用到的依賴包,以及通過配置文件指定的要用到的額外包及dll

注意事項:

1. 解釋器是啥版本的,打包進去就是啥版本的,64位解釋器在32位OS上跑不了,跨平台也跨不了。

2. dll大都需要手寫配置打包進去,常年不會自動打包。

3. 各打包工具的配置文件寫法略有差異,版本間也可能有不同,請查閱官方對應版本文檔。


正確答案是,用pyinstaller軟體打包。我也學python3不久,用的是最新的python版本。幾個月前這個問題也是比較困擾我。後來我在網上搜遍了,把各個軟體都試一下,發現pyinstaller是可以成功的,而且非常簡單。

操作步驟:1.輸入pip install PyInstaller

2.進入需要打包的程序目錄

3.輸入pyinstaller + 需要打包的程序(腳本)名稱


呃真的要退成3.4了...


……關注了這問題過了不懂多久了都快忘了又被新回答引到這了……雖然我也沒有很好的解決辦法但是先來強答一點拋磚引玉吧。

樓上所說的各種py2exe用不了,「No such file...」是因為py2exe暫時到目前只支持到3.4版本(包括cxfreeze)。對3.5的遲遲不完善是因為3.5相比3.4做了一個「一般開發者不在意但模塊開發者很重要的改動」(老早看的一篇英文的blog……就記得個黑色博客主題- -||其他記不得了,大概有這個意思……好像還說了什麼痛苦是暫時的balabala……懶得找了看到鏈接再補)所以開發者一直在努力開發中……

想來也快滿年了……也該好了……

因3.4與3.5的一般語法並沒有很大差異……所以一般可以原樣拷貝3.5代碼在3.4環境中打包。

入門拙見。


各位,人家問的是python3.5版本的怎樣打包,我3.5的也不會用打包,用py2exe會報錯:error: [Errno 2] No such file or directory: F:\python\lib\site-packages\py2

exe\run_w-py3.5-win-amd64.exe,,,,結果我發現run_w-py3.5-win-amd64.exe網上找不到,只有run_w-py3.4-win-amd64.exe


搭車提問:

WIN7 64bit,安裝了兩個版本的PY:Anaconda3內置的PY3.5、單獨安裝的PY3.6。

根據上網搜索結果,需先安裝Pywin32,然後再裝Pyinstaller用於編譯。但是在安裝Pywin32時報錯:Python 3.6 required,which is not found in registry。該如何解決?此問題和同時安裝兩個版本的PY是否有關?


python 3.5 的 importlib 中修改了,分成了 _frozen_importlib 和 _frozen_importlib_external。 cx_Freeze-4.3.4 中的 finder.py ,194行(self.IncludeModule("_frozen_importlib"))後加:

if sys.version_info[:2] &>= (3, 5):

del self._modules["_frozen_importlib_external"]

self.AddAlias("_frozen_importlib_external", "importlib._bootstrap_external")

self.IncludeModule("_frozen_importlib_external")

del self._modules["importlib._bootstrap_external"]

有縮進,但是都被吃掉了。


推薦閱讀:

《Django By Example》第二章 中文翻譯
Python爬蟲(3):爬取豆瓣電影TOP250

TAG:Python |