2015-05-06 57 views
1

我上傳一個Python模塊的PyPI和本地安裝該模塊:用命令行參數創建Python模塊

PIP安裝microarray_quantilenorm

我試圖與pass-命令行運行模塊通過論據。

當我從site-packages直接調用python腳本時,一切正常。

python /site-packages/microarray_quantilenorm/microarray_quantilenorm.py *csv 

但呼籲:

python -m microarray_quantilenorm.__main__ *csv 

OR:在

python -m microarray_quantilenorm *csv 

結果:

/anaconda/bin/python: No module named microarray_quantilenorm.__main__ 

我不能追查到是否有setup.py問題,我的__init__.py或其他地方。謝謝。

回答

2

__main__.py的整點在於它是當程序包作爲模塊運行時運行的文件。換句話說,只要做python -m microarray_quantilenorm,而不是python -m microarray_quantilenorm.__main__

但是,通常還有更好的解決方案。假設您使用setuptools而不是嘗試手動完成整個混亂,請使用console_scripts entry point。這將使安裝過程自動創建一個名爲microarray_quantilenorm的腳本,並將其安裝在您的binscripts目錄中,該目錄正確加載軟件包並運行其主代碼(或者,如果您願意,還可以使用其他代碼)。

+0

有關console_scripts語法的問題,我將使用什麼語法來調用腳本?使用microarray_quantilenorm = microarray_quantilenorm:主要結果在錯誤。 – user2277435

+0

@ user2277435:參見[文檔](http://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation)。但首先,你是否記得引號?其次,'main'是要調用的_function_的名稱。你的'microarray_quantilenorm .__ main__'是否有'main'函數?如果這還不足以提供幫助,我會建議創建一個新問題,您可以在其中包含詳細信息,例如結果是什麼錯誤以及確切地說明了您放置的位置。 – abarnert

+0

是的,基於文檔無法看到使用哪種語法,但在setup.py中用引號調用它。是的,我的Python腳本包含一個主要功能。如果我在更多時間後無法解決問題,我將作爲單獨問題發佈。再次感謝你。 – user2277435