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

Creating python module with command line arguments

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

pip 安装microarray_quantilenorm

我正在尝试 运行 带有传递参数的命令行模块。

当我直接从站点包调用 python 脚本时,一切正常。

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

但是调用:

python -m microarray_quantilenorm.__main__ *csv

或:

python -m microarray_quantilenorm *csv

结果:

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

我无法查明 setup.py、我的 __init__.py 或其他地方是否存在问题。谢谢。

__main__.py 的全部意义在于,当包 运行 作为模块时,文件就是 运行。换句话说,只做python -m microarray_quantilenorm,而不是python -m microarray_quantilenorm.__main__

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