我開發了python應用程序,我決定把它變成由easy_install
或pip
以後安裝的包。我用搜索找到了幾個有關python包的目錄結構的好資源。請參見this answer或this post。Python包中的腳本
我創建的結構如下(我省略了幾個文件列表,使謝靈運更清晰)
Project/ |-- bin/ |-- my_package/ | |-- test/ | | |-- __init__.py | | |-- test_server.py | |-- __init__.py | |-- server.py | |-- util.py |-- doc/ | |-- index.rst |-- README.txt |-- LICENSE.txt |-- setup.py
在此之後,我創建可執行腳本server-run
#!/usr/bin/env python from my_package import server server.main()
我放入bin
目錄。如果我使用python setup.py install
或通過pip/easy_install
安裝我的軟件包,一切正常,我可以運行server-run
,我的服務器開始處理傳入的請求。
但我的問題是如何測試server-run
在開發環境中工作(沒有事先安裝my_package
)?另外我想使用這個腳本爲開發目的運行最新的服務器代碼。
發展發生在Project
目錄中,以便我得到ImportError
,如果我跑./bin/server-run
[email protected]:~/dev/Project/$ ./bin/server-run Traceback (most recent call last): File "./bin/server-run", line 2, in import my_package ImportError: No module named my_package
是否有可能修改bin/server-run
腳本,所以,如果我從另一個文件夾中的文件系統中的某個地方運行它(不一定是它的工作從Project
dir)?另請注意,我想使用(如果可以實現)相同的腳本在生產環境中運行服務器。
但是,如果我用這個代碼'服務器run'不會安裝程序包後工作。 – Alik
更新了先試用正常版本的方法。 – agf
呵呵。我忘了ImportException :)謝謝! – Alik