偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python腳本在其他語(yǔ)言環(huán)境中的應(yīng)用方案

開(kāi)發(fā) 后端
Python腳本是在不少的編程環(huán)境中都可以應(yīng)用的一個(gè)語(yǔ)言腳本,但是我們要如何才能更順暢的使用這個(gè)腳本呢。下面的文章會(huì)對(duì)你有所收獲。

Python腳本如何才能更順暢的使用呢,其實(shí)有很多的方法,下面我們就來(lái)學(xué)習(xí)下有關(guān)于Python腳本的相關(guān)介紹。希望大家有所收獲。把Python腳本和所用到的庫(kù)打包為exe文件,可以更方便的發(fā)布程序,避免使用程序的每個(gè)電腦都必須安裝Python。

網(wǎng)上有不少相關(guān)介紹,但很少見(jiàn)到Python 3.x下打包Python腳本為exe的成功案例,筆者探索了一下,成功完成了任務(wù),記錄下來(lái)分享給需要的朋友。歡迎交流。

根據(jù)自己的系統(tǒng)類型和Python版本下載合適的類型,我下載的是:cx_Freeze-4.1.2.win32-py3.1.msi。這個(gè)工具目前最新版本是2010.1.6號(hào)的,還挺新的。

我要打包的是BlogPost.py和它依賴的模塊。

A、準(zhǔn)備工作。

a、去除代碼中所有中文字符,包括注釋。(指定編碼的注釋可以不去掉沒(méi)有關(guān)系)

b、如果用到類似lxml這樣的第三方庫(kù),可能會(huì)出現(xiàn)找不到_elementpath模塊的錯(cuò)誤。需要在某個(gè).py文件中寫(xiě)上import _elementpath as DONTUSE,并且指定該模的搜索路徑。(我的該模塊所在路徑是:C:\Python25\Lib\site-packages\lxml\_elementpath.py)

B、命令行執(zhí)行。

  1. C:\Python31\Scripts\cxfreeze.bat –include-path=C:\Python25
    \Lib\site-packages\lxml –
    init-script=D:\Projects\Google\
    pyblogpost\2exe\BlogPost.py BlogPost.py 

(1)–init-script指定的啟動(dòng)文件路徑必須用絕對(duì)路徑,否則會(huì)提示找不到init script。

(2)只能指定一個(gè)要打包的模塊,也就是啟動(dòng)模塊。

(3)所有.py文件都不能有中文字符,否則會(huì)出現(xiàn)編碼異常。

(4)執(zhí)行上述命令后,在會(huì)生成dist目錄,里面就有打包后的可執(zhí)行文件。

(5)發(fā)布后,可執(zhí)行文件執(zhí)行路徑不能有中文(最好也不要有空格)。而且最好發(fā)布dist目錄所有文件,我發(fā)現(xiàn)有時(shí)只發(fā)布打包后的exe是無(wú)法運(yùn)行的。

(6)啟動(dòng)執(zhí)行的文件中不要有下面這種判斷,否則可執(zhí)行文件執(zhí)行會(huì)沒(méi)有任何效果。

  1. if __name__ == “__main__”:  
  2. main() 

(7)如果沒(méi)有指定–include-path,或者沒(méi)有在某個(gè).py文件中寫(xiě)上import _elementpath as DONTUSE,都會(huì)出現(xiàn)如下找不到_elementpath模塊的錯(cuò)誤:

  1. D:\Projects\Google\pyblogpost\2exe\dist>BlogPost.exe  
  2. Traceback (most recent call last):  
  3. File “D:\Projects\Google\pyblogpost\2exe\BlogPost.py”, line 
    11, in 
    <module> 
  4. import BlogConfig  
  5. File “BlogConfig.py”, line 5, in <module> 
  6. File “ExtensionLoader_lxml_etree.py”, line 12, in <module> 
  7. File “lxml.etree.pyx”, line 39, in init lxml.etree (src/lxml/
    lxml.etree.c:1399  
  8. 44)  
  9. ImportError: No module named _elementpath  
  10. (8)不能有中文,即使是注釋中也不能有,否則出現(xiàn)如下錯(cuò)誤。  
  11. codeString = fp.read()  
  12. File “C:\Python31\lib\codecs.py”, line 300, in decode  
  13. (result, consumed) = self._buffer_decode(data, self.errors, 
    final)  
  14. UnicodeDecodeError: ‘utf8′ codec can’t decode bytes in 
    position 557-558: invalid  
  15. data  
  16. 嘗試把編碼由cp936改為utf-8,也不可以,把文件中ASCII另存為UTF-8,
    也不行,有如下錯(cuò)誤:  
  17. File “BlogConfig.py”, line 1  
  18. \ufeff#!/usr/bin/python  
  19. SyntaxError: invalid character in identifier 

補(bǔ)充說(shuō)明另外一種打包方式。第3點(diǎn)講的是通過(guò)命令行指定參數(shù)打包,也可以采用如下方式:

(1)新建setup.py文件,內(nèi)容大致如下:(我使用的是上述第3點(diǎn)講述的方法,沒(méi)有修改參數(shù))

(2)在命令行執(zhí)行:python setup.py build。這種打包方法,在cxfreeze工具的sample中也大量使用。

Python 2.x版本

上面的cx_Freeze同樣提供for Python 2.x的版本,用法我估計(jì)也差不多,不再贅述。加上這一節(jié),是記錄一下之前我用Python 2.x寫(xiě)一個(gè)小工具用py2exe打包的過(guò)程。
先安裝py2exe工具。

然后用下面setup.py腳本:

  1. from distutils.core import setup  
  2. import py2exe  
  3. options = {“py2exe”: {“bundle_files”: 1}}   
  4. setup(optionsoptions = options,  
  5. zipfile = None,  
  6. console=["hello.py"],)  

Python腳本命令行執(zhí)行:

  1. C:\Python26\python.exe setup.py py2exe  

Python腳本就會(huì)在dist目錄生成單一的hello.exe文件,這個(gè)文件是可執(zhí)行的。

【編輯推薦】

  1. 講述C++中調(diào)用Python腳本
  2. 有關(guān)Python腳本相關(guān)說(shuō)明介紹
  3. C++調(diào)用python腳本函數(shù)基本應(yīng)用指南
  4. 深度剖析Python腳本語(yǔ)言功能
  5. 關(guān)于Python腳本語(yǔ)言進(jìn)行學(xué)習(xí)介紹

 

責(zé)任編輯:張浩 來(lái)源: CSDN
相關(guān)推薦

2021-10-19 14:22:14

鴻蒙HarmonyOS應(yīng)用

2010-03-17 15:58:08

Python環(huán)境

2010-03-11 15:16:52

Python編程語(yǔ)言

2010-03-17 17:06:10

python腳本語(yǔ)言

2010-03-11 19:45:09

Python邏輯

2010-03-19 15:16:11

Python代碼

2011-08-17 12:41:30

win7win7主題包

2010-03-23 13:30:36

Python VIM

2010-03-24 18:54:53

Python語(yǔ)言

2010-03-11 18:43:17

Python語(yǔ)言腳本

2010-03-11 16:42:31

Python語(yǔ)言開(kāi)發(fā)

2010-03-16 16:47:25

Python數(shù)組

2010-03-18 10:45:33

Python Djan

2019-09-26 09:42:44

Go語(yǔ)言JavaPython

2011-05-07 08:35:22

PHP

2010-01-15 14:46:20

C++語(yǔ)言

2014-09-01 09:57:11

Go產(chǎn)品環(huán)境最佳語(yǔ)言

2021-07-30 20:25:04

pipxPython編程語(yǔ)言

2021-07-27 07:49:39

SpringBoot配置環(huán)境

2010-03-25 17:10:42

Python設(shè)置環(huán)境
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)