日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Pythonexe的實(shí)際操作步驟

你對(duì)Pythonexe如果感興趣的話,你想知道Pythonexe的相關(guān)原理的詳細(xì)的介紹的話,你可以到我們的文章了解一下他的具體應(yīng)用,及相關(guān)的功能介紹,以下是我們對(duì)其原理三大功能的主要描述。

我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、冊(cè)亨ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的冊(cè)亨網(wǎng)站制作公司

Python6. 把c:\python25\dlls目錄中的.pyd和.dll文件,復(fù)制到d:\dist\dlls目錄沒(méi)有內(nèi)建一個(gè)編譯為exe的功能。給python程序的部署帶來(lái)不少的麻煩。 所以就會(huì)出現(xiàn)一些py2exe之類的很不錯(cuò)的工具,用于自動(dòng)把.py文件編譯為.exe文件。 最近抽空研究了一下動(dòng)實(shí)現(xiàn)類似py2exe的功能,希望加強(qiáng)對(duì)python的了解。 結(jié)果還相當(dāng)不錯(cuò)。把結(jié)果記錄下來(lái),與大家共享。

原理

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

1. python程序運(yùn)行時(shí),會(huì)在sys.path指定的路徑中查找?guī)煳募?
2. python從2.3開(kāi)始,支持從zip文件中import庫(kù)(支持.py,.pyc和.pyo,但不支持.pyd)
3. python提供C API,讓c語(yǔ)言的程序,可以很方便的調(diào)用python的程序#t#

 實(shí)際步驟

注:假設(shè)Pythonexe安裝在c:\python25目錄中,***的可執(zhí)行文件放到d:\dist目錄中
1. 先去c:\python25\Lib目錄,把所有文件都復(fù)制出來(lái),比如復(fù)制到d:\pythonlib目錄中
2. 開(kāi)一個(gè)cmd窗口,進(jìn)入d:\pythonlib目錄中,運(yùn)行 python -OO compileall.py -f . 把lib中的.py文件都編譯成.pyo文件

3. 刪除d:\pythonlib目錄中所有的.py和.pyc文件,因?yàn)槲覀冎灰?pyo文件就可以讓這些庫(kù)運(yùn)行了。
4. 刪除目錄中所有用不著的文件,比如curses,test,idlelib,msilib等,以減少生成文件的體積。

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

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

 
 
  1. #include  
  2. #include  
  3. #include  
  4. #include  
  5. int main() 
  6. // 

得到當(dāng)前可執(zhí)行文件所在的目錄

 
 
  1. char szPath[10240]; 
  2. char szCmd[10240]; 
  3. GetModuleFileName(NULL, szPath, sizeof(szPath)); 
  4. char* p = strrchr(szPath, '\\'); 
  5. if (p == NULL) 
  6. printf("Get module file name error!\n"); 
  7. return -1; 
  8. *p = 0; 
  9. // 

設(shè)定運(yùn)行時(shí)的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. printf("Get module file name error!\n"); 
  7. return -1; 
  8. *p = 0; 


把sys.path設(shè)定為['.', '自己的源代碼zip文件', '標(biāo)準(zhǔn)庫(kù)zip文件', 'dll目錄'] 
然后調(diào)用main模塊

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


新聞名稱:Pythonexe的實(shí)際操作步驟
當(dāng)前地址:http://www.dlmjj.cn/article/dhpsscj.html