有沒有什麼辦法讓庫文件中的py2exe輸出.py
源文件而不是字節編譯的.pyc
文件?使py2exe產生`.py`文件
回答
我做了很久以前,所以我希望我沒有記錯:
- 集壓縮爲False,所以py2exe不會創建一個Zip'd庫文件。
- 將優化設置爲零,py2exe將寫入
pyc
文件。
UPDATE:拉姆Rachum是正確的,使用skip_archive
選項,而不是compressed
。
您將無法修改您的主Python文件,因爲它將被嵌入到主可執行文件中,因此請儘量減少。然後,您可以根據需要在您的發行版中手動替換pyc
文件和py
文件。沒有理由替換標準庫,但是,只有你自己的代碼。
(這是不是最佳的調試,但我猜你想解決一些問題只發生在你的軟件的發佈版本這樣。)
請讓我知道,如果它不工作,我我會盡力幫忙。
UPDATE:
我剛讀了py2exe源代碼的相關部分。看來,py2exe不支持開箱即用。所以我們已經選擇了觸摸它的源代碼。
您可以輕鬆修改py2exe
以支持此模式。請參見build_exe.py
中的byte_compile
函數。有一個compile
內置函數的調用,你可以用copy_file
來代替它。不要忘記修改目標文件名(dfile
)以使擴展名.py
代替.pyc
或.pyo
。我知道這是錯綜複雜的,但我沒有看到任何其他可能性來解決你的問題。
如果您好奇,您還可以添加新的py2exe
選項或爲此引入一個新的optimize
值。實際上,這將是對py2exe的開源貢獻。 ;)
我已經可以手動將它們替換爲py文件。 (另外,我正在使用'skip_archive'來創建一個文件夾,而不是一個zip文件。) 我只是希望py2exe不會嘗試成爲那麼聰明;我希望它只是將每個包的原始包內容複製到庫中。除了編譯''。py'文件,它也丟失了一些數據文件,例如一些科學軟件包。 – 2010-05-09 11:51:57
您可以在'data_files'選項中顯式列出'py2exe'錯過的數據文件。請參閱:http://py2exe.org/index.cgi/data_files – fviktor 2010-05-09 14:31:05
請參閱上面的我的更新。我希望它有幫助。 – fviktor 2010-05-09 14:55:23
- 1. py2exe跳過一些PY文件
- 2. py2exe找不到.py
- 3. 如何捆綁在py2exe上使用execfile()啓動的.py文件?
- 4. Py2Exe生成日誌文件
- 5. py2exe與其源代碼.py文件有不一致的行爲
- 6. 如何將多個.py文件合併到一個.exe文件中Py2Exe
- 7. 將.ui文件轉換爲.py文件。沒有.py文件生成
- 8. py2exe無法生成可執行文件
- 9. 從.py文件轉換爲.exe文件(使用py2exe),如何從書面文件導入數據?
- 10. py2exe生成dll?
- 11. 幫助轉換的.py到.EXE,使用py2exe
- 12. 使用py2exe模塊將.py轉換爲.exe
- 13. py2exe可執行文件生成日誌文件錯誤
- 14. 編譯* .py文件
- 15. xmltodict在.py文件
- 16. 何時在.py文件上運行Jython會生成.class文件?
- 17. Python py2exe與tkinter(pyw文件)
- 18. py2exe和文件系統
- 19. 如何將包文件,py2exe
- 20. 包含py2exe的文件夾
- 21. Python將.py部分文件合併爲一個.py文件
- 22. 蟒蛇py2exe編譯2個PY文件一次到兩個獨立的exe文件
- 23. 資產包產生的空文件
- 24. Laravel 5.3文件在生產
- 25. 如何產生某文件
- 26. 行家產生POM文件
- 27. 生產無效的文件
- 28. 生產symfony文件更新
- 29. AngularJS FileSaver產生空文件
- 30. 產生文件問題?
您已經有.py文件 - 它們被輸入到py2exe。既然你已經有.py文件,你想完成什麼? – 2010-05-08 10:46:08
我想讓它輸出'.py'文件,而不是讓py2exe在庫中輸出'.pyc'。這樣我才能更容易地進行調試。 – 2010-05-08 10:52:05
-1:你已經有.py文件。這沒有意義。評論沒有幫助。嘗試使用一些合理的解釋來更新問題,以瞭解爲什麼當你已經有.py文件時需要.py文件*。 – 2010-05-08 12:12:12