使用命令行参数创建python模块

时间:2015-05-06 18:07:09

标签: python pip

我已经将一个python模块上传到pypi并在本地安装了模块:

pip install microarray_quantilenorm

我试图在命令行上使用传递参数运行模块。

当我直接从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,my __init__.py或其他地方是否存在问题。感谢。

1 个答案:

答案 0 :(得分:2)

__main__.py的重点在于,当程序包作为模块运行时,它是运行的文件。换句话说,只需python -m microarray_quantilenorm,而不是python -m microarray_quantilenorm.__main__

然而,通常,有一个更好的解决方案。假设您正在使用setuptools而不是尝试手动完成整个混乱,请使用console_scripts entry point。这将使安装过程自动创建一个名为microarray_quantilenorm的脚本,并将其安装在binscripts目录中,该目录正确地加载包并运行其主代码(或者,如果您愿意,还可以使用其他代码。)