使用命令行参数创建 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
的脚本并将其安装在您的 bin
或 scripts
目录中,该目录可以正确地加载包和 运行 它的主要内容代码(或者,如果您愿意,其中包含一些其他代码)。
我已经将 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
的脚本并将其安装在您的 bin
或 scripts
目录中,该目录可以正确地加载包和 运行 它的主要内容代码(或者,如果您愿意,其中包含一些其他代码)。