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

使用命令行参数创建python模块,python,pip,Python,Pip,我已将python模块上载到pypi,并在本地安装了该模块,其中包括: pip安装微阵列\量化表 我正在尝试使用传递参数在命令行上运行模块 当我直接从站点包调用python脚本时,一切正常 python /site-packages/microarray_quantilenorm/microarray_quantilenorm.py *csv 但呼吁: python -m microarray_quantilenorm.__main__ *csv 或: 结果: /anaconda/bin/p

我已将python模块上载到pypi,并在本地安装了该模块,其中包括:

pip安装微阵列\量化表

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

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

python /site-packages/microarray_quantilenorm/microarray_quantilenorm.py *csv
但呼吁:

python -m microarray_quantilenorm.__main__ *csv
或:

结果:

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

我无法跟踪setup.py、my _uinit__uuuuuuu.py或其他地方是否存在问题。谢谢。

整个
\uuuu main\uuuuu.py
的要点是,当包作为模块运行时,它是运行的文件。换句话说,只需执行
python-m微阵列\u量化表
,而不是
python-m微阵列\u量化表


然而,通常有更好的解决方案。假设您使用的是
setuptools
,而不是试图手动完成整个任务,请使用一个。这将使安装过程自动创建一个名为
microarray\u quantilenorm
的脚本,并将其安装到您的
bin
scripts
目录中,以便正确地加载包并运行其主代码(或者,如果您愿意,在其中运行一些其他代码)。

有关控制台脚本语法的问题,我将使用什么语法来调用脚本?使用微阵列\u quantilenorm=微阵列\u quantilenorm:主要结果出错。@user2277435:请参阅。但是首先,你还记得那些引语吗?其次,
main
是要调用的函数的名称。你的
microarray\u quantilenorm.\uuu\u主\uu
是否有
main
功能?如果这还不够,我建议创建一个新的问题,在其中可以包括详细信息,如它会导致什么错误,以及您将什么内容放在哪里。是的,无法根据文档查看要使用的语法,但它在setup.py中用引号调用。是的,我的python脚本包含一个主函数。如果我在更多的时间后无法解决问题,我将作为一个单独的问题发布。再次感谢。@user2277435:我在答案中链接的文档只提供了一个简单的例子,但我在评论中链接的文档(我希望也应该链接到其他文档的某个地方)有更多的信息。
/anaconda/bin/python: No module named microarray_quantilenorm.__main__