创建一个PyCharm配置,运行模块a" python -m foo"

时间:2014-02-27 21:39:55

标签: python pycharm

我的python入口点需要作为模块(而不是脚本)运行,如:

python -m foo.bar

以下不起作用(并且不应该):

python foo/bar.py

如何使用上面的第一个调用在pycharm中创建运行我的代码的运行确认?

5 个答案:

答案 0 :(得分:40)

我的脚本使用了一种解决方法,它使用相对导入。

python -m实际上调用了一个名为runpy.py的脚本,它是标准Python安装的一部分。这两个调用是等效的:

python -m my_module.a.b module_arguments
python python_lib_directory/runpy.py my_module.a.b module_arguments

使用后一种方法设置运行/调试配置:

脚本: python_lib_directory / runpy.py

脚本参数: my_module.a.b module_arguments

口译员选项:(留空,不需要-m)

答案 1 :(得分:30)

根据man python-m选项

  

-m module-name
         在sys.path中搜索指定的模块,并将相应的.py文件作为脚本运行。

因此,大多数情况下,您只需右键点击项目工具窗口中的bar.py,然后选择Run bar

如果确实需要使用-m选项,请将其指定为解释器选项,并在“编辑配置”对话框中将模块名称指定为脚本:

enter image description here

答案 2 :(得分:25)

在2018.1中,最终可以在UI中指定模块名称而不是脚本路径。在输入字段的左侧有一个用于更改它的下拉菜单。

PyCharm Run Configuration

答案 3 :(得分:6)

IntelliJ IDEA / PyCharm 2017

Field" Script"在最新版本的JetBrains IDE中是可选的。在"脚本参数"中指定-m foo.bar够了:

enter image description here

答案 4 :(得分:4)

在PyCharm 2016中,在没有脚本路径的情况下指定-m不起作用,因为它们使用的包装脚本不接受-m参数。

这是我的解决方案,适用于run&调试配置:https://github.com/amnong/misc/tree/master/pycharm_runner

编辑:我刚读了J. R. Petrus的评论,我的解决方案非常相似。 BTW我也尝试使用pkg_resources支持正确的入口点,但出于某种原因,pkg_resources.load_entry_point()无法找到我项目的分发...