標籤:問題 對象 which module pytho 代碼 執行 chmod execfile
linux下有多種方式運行python:
1. 命令列執行:建立一個*.py文檔,在其中書寫python代碼。之後,在命令列執行:$ python *.py
注意事項:1. 需要指明檔案的絕對路徑;2. 原始碼中要指明輸出,比如print
2. UNIX指令碼:在建立*.py檔案後,需要在原始碼頭部添加python的執行路徑,比如"#! /usr/bin/python"。其中,"#!"被稱為"hash bang"。之後,先更改文本許可權為可執行檔,再執行即可:$ chmod +x *.py$ ./*.py
注意事項:1. 如果找不到python執行路徑,輸入$ which python查看;2. 另一種更適用的方法是,添加env程式,自動尋找python路徑,比如將第一行改寫為"#! /usr/bin/env python"。這種方法便於程式的跨平台執行,但是前提要保證env的路徑;如果不知道env路徑,輸入$ which env查看。
3. 模組載入與重載:
模組(module):一群變數名的封裝,一個模組對應這一個單獨的“命名空間”。載入模組後,通過object.attribute訪問對象。可以把一個模組理解成一個“包(package)”,這樣做的好處就是:
把處理同一個問題的所有代碼打包,方便反覆使用。python提供的模組概念,
很好地解決了重複變數名的問題,因為即使變數名相同,因為模組名不同,所以仍然可以區分(很像R語言中的“雙冒號”操作符,package::function)。
載入:import mymoduel或者from mymodule import object;另一種方法使用execfile(‘mymodule.py‘)。
重載:使用load()函數,比如load(mymodule)。
注意事項:1. import/from/load()都
不需要指明模組尾碼,這也暗示著模組需要在當前運行目錄下;2. import/from之後,再次import/from不起作用。同樣,修改該模組後import/from(第二次)也沒有。這是,需要用load()載入。execfile()不存在這個問題。
4. 最爽的做法:emacs中配置python運行環境。
linux運行python程式