亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pythonexe的實際操作步驟是怎樣的

發布時間:2021-10-28 16:39:20 來源:億速云 閱讀:129 作者:柒染 欄目:編程語言

Pythonexe的實際操作步驟是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Python6. 把c:\python25\dlls目錄中的.pyd和.dll文件,復制到d:\dist\dlls目錄沒有內建一個編譯為exe的功能。給python程序的部署帶來不少的麻煩。 所以就會出現一些py2exe之類的很不錯的工具,用于自動把.py文件編譯為.exe文件。 最近抽空研究了一下動實現類似py2exe的功能,希望加強對python的了解。 結果還相當不錯。把結果記錄下來,與大家共享。

原理

文中所描述的方法,基于python的以下幾個功能

1. python程序運行時,會在sys.path指定的路徑中查找庫文件。
2. python從2.3開始,支持從zip文件中import庫(支持.py,.pyc和.pyo,但不支持.pyd)
3. python提供C API,讓c語言的程序,可以很方便的調用python的程序

實際步驟

注:假設Pythonexe安裝在c:\python25目錄中,***的可執行文件放到d:\dist目錄中
1. 先去c:\python25\Lib目錄,把所有文件都復制出來,比如復制到d:\pythonlib目錄中
2. 開一個cmd窗口,進入d:\pythonlib目錄中,運行 python -OO compileall.py -f . 把lib中的.py文件都編譯成.pyo文件

3. 刪除d:\pythonlib目錄中所有的.py和.pyc文件,因為我們只要有.pyo文件就可以讓這些庫運行了。
4. 刪除目錄中所有用不著的文件,比如curses,test,idlelib,msilib等,以減少生成文件的體積。

5. 把這些庫打包成一個zip文件,比如stdlib.zip,放到d:\dist目錄中
中,當然,刪除不可能用到的一些文件_msi.pyd,_ssl.pyd等等,可以減少文件的體積

7. 把自己寫的程序,也按步驟2至步驟5所說的方法,打成一個mysrc.zip包,放到d:\dist目錄中。 注意:自己寫的程序的入口應該是main.pyo文件
8. 用以下C程序編譯出一個可執行文件,比方說叫runpy.exe,也放到d:\dist中。

#include <Python.h>   #include <Windows.h>   #include <stdlib.h>   #include <stdio.h>    int main()   {   //

得到當前可執行文件所在的目錄

char szPath[10240];   char szCmd[10240];   GetModuleFileName(NULL, szPath, sizeof(szPath));   char* p = strrchr(szPath, '\\');   if (p == NULL)   {   printf("Get module file name error!\n");   return -1;   }    *p = 0;    //

設定運行時的PATH

  1. char szPath[10240];   

  2. char szCmd[10240];   

  3. GetModuleFileName(NULL, szPath, sizeof(szPath));   

  4. char* p = strrchr(szPath, '\\');   

  5. if (p == NULL)   

  6. {   

  7. printf("Get module file name error!\n");   

  8. return -1;   

  9. }   

  10.  

  11. *p = 0;   



把sys.path設定為['.', '自己的源代碼zip文件', '標準庫zip文件', 'dll目錄'] 
然后調用main模塊

把python25.dll放到d:\dist目錄中即可完成手動制作pythonexe可執行程序的部分程序 。

看完上述內容,你們掌握Pythonexe的實際操作步驟是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九龙坡区| 治多县| 广南县| 沐川县| 平遥县| 九龙坡区| 荣成市| 洛宁县| 航空| 大埔县| 邮箱| 永川市| 古浪县| 浦城县| 九寨沟县| 通河县| 桦川县| 合肥市| 淅川县| 连平县| 衡山县| 宁津县| 娄底市| 安吉县| 古交市| 密云县| 苗栗市| 泸州市| 涟源市| 锡林浩特市| 屏山县| 东乡县| 大洼县| 合江县| 保定市| 拉孜县| 双鸭山市| 赤水市| 华池县| 兰西县| 郑州市|