我有一個Python應用程序,並且我有一個關於打包的問題,這不是一個真正的distutils問題,而是一個如何組織和設置應用程序的問題,因此很容易從命令行使用。組織一個Python應用程序
假定應用程序包含一個包,並承擔,我並不一定要讓它的distutils包的時刻(雖然我可以勸阻。)
程序本身作爲一個SNMP子代理是使用pass_persist通過Net-SNMP運行。這對於這個問題並不是特別重要,它只是意味着整個程序是可執行的,並且讀取標準輸入和標準輸出的響應。
進一步假設該代理在或多或少規範Python的方式構成
agent
__init__.py
main.py
<other modules at the same level>
main.py
是一個簡單的程序類似
#!/usr/bin/env python
import sys
def main(argv):
<initialize the environment, input output, logging and so on>
while <not done>:
<process an input>
<clean up and terminate>
if __name__ == '__main__':
main(sys.argv)
有似乎只是幾個方面,這可能是有組織地運行:
將該軟件包置於站點包中的某個位置,並在PATH中有一個頂級程序,如
#!/usr/bin/env python
from agent import main
main(sys.argv)
把包目錄的地方,並通過使用
/path/to/directory/agent/main.py
(與bumpo版本是把代理的目錄路徑的地方,所以你可以只運行main.py
)
運行或者是更多的Pythonic和酷的方法,讓我安裝代碼並直接將某些東西放到我不知道的路徑中。
谷歌搜索沒有什麼幫助,我懷疑這是那些「太愚蠢回答」的問題之一。不幸的是,我很愚蠢,不知道這一點。