一??蓤?zhí)行的Python程序
這部分內(nèi)容只對(duì)Linux/Unix用戶適用,不過(guò)Windows用戶可能也對(duì)程序的第一行比較好奇。首先我們需要通過(guò)chmod命令,給程序可執(zhí)行的許可,然后運(yùn)行程序。
$chmoda+xhelloworld.py
$./helloworld.py
HelloWorld
chmod命令用來(lái)改變文件的模式,給系統(tǒng)中所有用戶這個(gè)源文件的執(zhí)行許可。然后我們可以直接通過(guò)指定源文件的位置來(lái)執(zhí)行程序。我們使用./來(lái)指示程序位于當(dāng)前目錄。
為了更加有趣一些,你可以把你的文件名改成僅僅helloworld,然后運(yùn)行./helloworld。這樣,這個(gè)程序仍然可以工作,因?yàn)橄到y(tǒng)知道它必須用源文件第一行指定的那個(gè)解釋器來(lái)運(yùn)行程序。
只要知道程序的確切位置,你現(xiàn)在就可以運(yùn)行程序了——但是如果你希望你的程序能夠從各個(gè)位置運(yùn)行呢?那樣的話,你可以把你的程序保存在PATH環(huán)境變量中的目錄之一。每當(dāng)你運(yùn)行任何程序,系統(tǒng)會(huì)查找列在PATH環(huán)境變量中的各個(gè)目錄。然后運(yùn)行那個(gè)程序。你只要簡(jiǎn)單地把這個(gè)源文件復(fù)制到PATH所列目錄之一就可以使你的程序在任何位置都可用了。
$echo$PATH
/opt/mono/bin/:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/swaroop/bin
$cphelloworld.py/home/swaroop/bin/helloworld
$helloworld
HelloWorld
我們能夠用echo命令來(lái)顯示PATH變量,用$給變量名加前綴以向shell表示我們需要這個(gè)變量的值。我們看到/home/swaroop/bin是PATH變量中的目錄之一。swaroop是我的系統(tǒng)中使用的用戶名。通常,在你的系統(tǒng)中也會(huì)有一個(gè)相似的目錄。你也可以把你選擇的目錄添加到PATH變量中去——這可以通過(guò)運(yùn)行PATH=$PATH:/home/swaroop/mydir完成,其中“/home/swaroop/mydir”是我想要添加到PATH變量中的目錄。
當(dāng)你想要在任何時(shí)間、任何地方運(yùn)行你的程序的時(shí)候,這個(gè)方法十分有用。它就好像創(chuàng)造你自己的指令,如同cd或其他Linux終端或DOS提示符命令那樣。
二。用Pyinstaller建立linux下Python的獨(dú)立可執(zhí)行文件
以下內(nèi)容假定已安裝好Python2.4/2.5
一、下載并編譯pyinstaller(只需做一次,以后可直接做第二步)
1.下載pyinstaller,現(xiàn)在的版本是1.3
(1)wgethttp://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz
2.解包進(jìn)入源碼目錄
(1)tarzxvpyinstaller_1.3.tar.gz
(2)cdpyinstaller-1.3/source/linux
3.編譯源代碼
(1)pythonMake.py生成python的.pyc文件
如無(wú)錯(cuò)誤,則出現(xiàn)如下提示(只有一行):
Nowrun"make"tobuildthetargets:../../support/loader/run../../support/loader/run_d
(2)make連接生成linux的.o文件
4.生成編譯配置文件
(1)pythonConfigure.py生成config.dat配置文件
二、編譯獨(dú)立運(yùn)行的python可執(zhí)行文件
1.生成spec文件
pythonpyinstaller-1.3/Makespec.py--onefile--upxlinuxlaptop.py
參數(shù)說(shuō)明:
--onefile生成單文件
--upx生成壓縮的文件(可減小執(zhí)行文件體積,需先安裝upx軟件包)
2.生成最終的可執(zhí)行文件
pythonpyinstaller-1.3/Build.pylinuxlaptop.spec
執(zhí)行完成后將在當(dāng)前目錄生成可執(zhí)行的linuxlaptop文件,如有問(wèn)題歡迎與我交流:linuxlaptop.cn。
原文:http://bbs.chinaunix.net/thread-1328460-1-1.html
============================個(gè)人實(shí)踐=============================
系統(tǒng):Ubuntu8.0.4
安裝相關(guān)包:apt-getinstalllibc6-devpython-devzlib1g-dev
cdsource/linux
python./Make.py
make
cd../../
pythonConfigure.py
/pyinstaller-1.3/Makespec.py--onedir--icon=img/imac.icomy.py
python/pyinstaller-1.3/Build.pymy.spec
這時(shí)會(huì)提示pyinstaller-1.3中的幾個(gè)包語(yǔ)法錯(cuò)誤,估計(jì)源碼包是在window下調(diào)試產(chǎn)生unix不識(shí)別的字符,典型的是換行符。
安裝dos2unix:sudoapt-getinstalltofrodos
dos2unix/pyinstaller-1.3/pyinstaller-1.3/optparse.py......(6個(gè)文件左右)
再運(yùn)行:python/pyinstaller-1.3/Build.pymy.spec
搞定,生成了distmy目錄,里頭有好多.o文件,類似于win下的dll:)
以上內(nèi)容為大家介紹了如何在Linux中運(yùn)行Python源文件,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/