草庐IT

【Pycharm教程】PyCharm 配置 Python 项目运行和调试

Python妙妙屋 2023-11-02 原文

PyCharm 使用运行/调试配置来运行、调试和测试您的代码。每个配置都是一组命名的启动属性,它们定义要执行的内容以及应该使用的参数和环境。

使用不同的启动属性,您可以定义 PyCharm 用来执行脚本的不同方式。例如,您可以使用不同的 Python 解释器执行相同的代码,提供各种环境变量集,并从替代文件中获取输入值。

有两种类型的运行/调试配置:

  • 临时的——每次运行或调试函数或测试时创建。

  • 永久- 从模板显式创建或通过保存临时配置创建。永久配置保留为项目的一部分,直到您将其删除。

因此,每当您运行/调试或测试代码时,PyCharm 要么使用现有的永久运行/调试配置,要么创建一个新的临时配置。

永久配置的图标是不透明的,而临时配置的图标是半透明的。

临时配置的最大数量为5个。添加新配置时,旧配置会自动删除。如有必要,您可以在Settings/Preferences |中增加此限制。高级设置 | IDE | 临时配置限制。

创建永久运行/调试配置

PyCharm 提供以下方法来创建永久运行/调试配置:

  • 将临时运行/调试配置保存为永久。

  • 从模板创建或复制现有配置。

将临时配置另存为永久

  • 在运行/调试配置切换器中选择一个临时配置,然后单击保存配置。

保存临时配置后,它将成为永久配置,并记录在 /.idea/目录中的单独 XML 文件中。例如,MyProject /.idea /Car.xml。

  • 或者,在运行/调试配置对话框中选择一个临时配置,然后单击

    工具栏上的 。

PyCharm为不同的语言、工具和框架提供运行/调试配置模板。可用模板列表因已安装和启用的插件而异。

从模板创建运行/调试配置

1. 从主菜单中,选择运行 | 编辑配置。或者,按Alt+Shift+F10,然后按0。

2. 在“运行/调试配置”对话框中,单击

工具栏上的 或按Alt+Insert。该列表显示运行/调试配置模板。

3. 在名称字段中指定运行/调试配置名称。此名称将显示在可用的运行/调试配置列表中。

4. 如果您希望允许配置的多个实例同时运行,请选择允许并行运行。如果禁用此选项,尝试重新运行配置将终止活动会话。

5. 设置运行/调试配置参数。

6. 在启动前部分,定义是否要在启动应用程序之前执行任何特定操作,例如,在启动运行/调试配置之前执行一些工具或脚本。

7. 应用更改并关闭对话框。

共享运行/调试配置

如果您在团队中工作,您可能希望共享您的运行/调试配置,以便您的队友可以使用相同的配置运行应用程序,或者使他们能够远程附加到您正在运行的进程。

出于这些目的,PyCharm 提供了一种将运行/调试配置存储为项目文件并通过 VCS 共享它们的机制。当您想将配置作为文件发送给其他人时,也可以使用相同的机制。这可以节省大量时间,因为运行/调试配置有时会变得复杂,并且手动保持它们同步会很乏味且容易出错。

基于.ipr的旧项目不支持单独的运行/调试配置。对于遗留项目,您只能通过将.ipr文件添加到 VCS 来一次共享所有配置。

1. 从主菜单中,选择运行 | 编辑配置。或者,按Alt+Shift+F10,然后按0。

2. 选择您要共享的运行/调试配置,启用存储为项目文件选项,并指定将存储配置文件的位置。如果需要与 PyCharm 2019.3 及更早版本兼容,请将文件存储在默认位置。

3. (可选)如果将.idea目录添加到 VCS 忽略的文件中,则.idea/runConfigurations子文件夹也将被忽略。

如果您在项目中使用 Git,则可以仅共享.idea/runConfigurations并通过修改.gitignore将.idea忽略,如下所示:

/.idea/*!/.idea/runConfigurations

打开存储为项目文件选项不会为您向 VCS 提交任何内容。为了让运行/调试配置进入共享存储库,您必须像其他版本化文件一样签入它们。

运行/调试配置模板

所有运行/调试配置都基于模板,这些模板实现了启动逻辑,定义了参数列表及其默认值。可用模板列表在安装中预定义,只能通过插件扩展。但是,您可以编辑每个模板中的默认参数值,以简化新运行/调试配置的设置。

更改模板的默认值不会影响现有的运行/调试配置。

不要为模板节点下列出的默认运行/调试配置设置工作目录。这可能会导致新创建的运行/调试配置中的目标无法解析。

配置模板的默认值

1. 从主菜单中,选择运行 | 编辑配置。或者,按Alt+Shift+F10,然后按0。

2. 在运行/调试配置对话框的左侧窗格中,单击编辑配置模板...。

3. 在打开的“运行/调试配置模板”对话框中,选择一种配置类型。

4. 指定所需的默认参数,然后单击“确定”保存模板。

复合运行/调试配置

假设您想同时启动多个运行/调试配置。例如,您可能想要运行多个不同类型的配置或一组测试配置。您可以使用复合运行/调试配置来配置此行为。

不保证执行顺序。如果您需要按顺序运行运行/调试配置,请在运行/调试配置的启动前区域中定义应该最后运行的顺序。

创建复合运行/调试配置

1.从主菜单中,选择运行 | 编辑配置。或者,按Alt+Shift+F10,然后按0。

2.在Run/Debug Configurations对话框中,单击

或按Alt+Insert,然后选择Compound。

3.在名称字段中指定运行/调试配置名称。此名称将显示在可用的运行/调试配置列表中。

4.选择存储为项目文件以使此运行/调试配置可供其他团队成员使用。

5.要将新的运行/调试配置包含到复合配置中,请单击添加 

并从列表中选择所需的配置。

6.应用更改。

运行/调试配置文件夹

当有许多相同类型的运行/调试配置时,您可以将它们分组到文件夹中,以便它们在视觉上更容易区分。

分组后,运行/调试配置将出现在相应文件夹下的列表中。

为运行/调试配置创建一个文件夹

1.从主菜单中,选择运行 | 编辑配置。或者,按Alt+Shift+F10,然后按0。

2.在“运行/调试配置”对话框中,选择一种配置类型并单击

工具栏上的 。将为所选类型创建一个新的空文件夹。

3.在右侧的文本字段中指定文件夹名称或接受默认名称。

4.选择所需的运行/调试配置并将它们移动到目标文件夹下。

5.应用更改。如果文件夹为空,则不会保存。

当您不再需要某个文件夹时,可以将其删除Delete。分组在此文件夹下的运行/调试配置将移动到相应运行/调试配置类型的根目录下。

在服务工具窗口中运行/调试配置

您可以在服务工具窗口中管理多个运行/调试配置。例如,您可以启动、暂停和停止多个应用程序,跟踪它们的状态,并检查特定于应用程序的详细信息。

将运行/调试配置添加到服务窗口

1. 选择查看 | 工具窗口 | 主菜单中的服务Alt+8或按。

2. 在Services工具窗口中,单击Add service,然后选择Run Configuration Type。

3. 从列表中选择一种运行/调试配置类型,以将这种类型的所有配置添加到窗口中。请注意,工具窗口将仅显示您为其创建了一个或多个配置的配置类型。

运行/调试配置参数

物品

描述

脚本路径/模块名称

单击列表以选择要运行的目标类型。然后,在相应的字段中,指定 Python 脚本的路径或要执行的模块名称。

参数

在此字段中,指定要传递给 Python 脚本的参数。指定脚本参数时,请遵循以下规则:使用空格分隔各个脚本参数。包含空格的脚本参数应使用双引号分隔,例如,some" "param

或"some param"

。如果脚本参数包含双引号,请使用反斜杠转义双引号,例如:-s"main.snap_source_dirs=[\"pcomponents/src/main/python\"]" -s"http.cc_port=8189" -s"backdoor.port=9189" -s"main.metadata={\"location\": \"B\", \"language\": \"python\"}"

.在此字段中,您可以添加宏以在运行运行/调试配置时传递各种项目或上下文特定的值。单击+并从列表中选择一个可用的宏。

环境

项目

单击此列表以选择在同一 PyCharm 窗口中打开的项目之一,应使用此运行/调试配置。如果只有一个打开的项目,则不显示该字段。

环境变量

此字段显示环境变量列表。如果列表包含多个变量,则它们用分号分隔。默认情况下,该字段包含PYTHONUNBUFFERED

设置为 1 的变量。要填写列表,请单击浏览按钮,或在“环境变量”对话框中按Shift+Enter并指定所需的环境变量集。要创建新变量,请单击

,然后键入所需的名称和值。您可能希望使用在文本文件中存储为一系列记录的变量填充列表,例如:Variable1 = Value1 Variable2 = Value2

只需从文本文件中复制变量列表,然后单击环境变量对话框中的粘贴( 

) 。变量将被添加到表中。单击确定以完成任务。您可以随时在“环境变量”对话框中选择所有变量,单击“复制”,然后将它们粘贴到文本文件中。

Python 解释器

从列表中选择一个预配置的Python 解释器。当 PyCharm 停止支持任何过时的 Python 版本时,相应的 Python 解释器将被标记为不受支持。

口译员选项

在此字段中,指定要传递给解释器的命令行选项。如有必要,单击

,然后在编辑器中键入字符串。

工作目录

指定正在运行的任务要使用的目录。Ctrl+Shift+F10当通过键盘快捷键或从脚本的上下文菜单中选择运行来创建默认运行/调试配置时,工作目录就是包含可执行脚本的目录。此目录可能与项目目录不同。当此字段留空时,将使用 PyCharm 安装的bin目录。

将内容根添加到 PYTHONPATH

选中此复选框可将项目的所有内容根添加到环境变量 PYTHONPATH;

将源根目录添加到 PYTHONPATH

选中此复选框可将项目的所有源根添加到环境变量 PYTHONPATH;

执行

在输出控制台中模拟终端

允许使用模拟终端模式在输出控制台中运行您的脚本或模块。此模式对于无法使用标准输出控制台实现的任务很有帮助,例如,当您的脚本执行插入符号返回操作 ( print(i, flush=True , end='\r'

) 时。请注意,在输出控制台中模拟终端与运行终端不同,终端是用于运行系统 shell 命令的单独工具窗口。

使用 Python 控制台运行

允许使用 Python 控制台运行脚本或模块。

重定向输入

允许将数据从文本文件重定向到标准输入。如果您的脚本需要一些输入并且您希望自动提交值而不是在运行控制台中键入它们,请使用此选项。要启用重定向,请选中复选框并指定目标文本文件的路径。

Docker 容器设置此字段仅在为项目选择基于 Docker 的远程解释器时出现。单击以打开对话框并指定以下设置:

选项

发布所有端口:将所有容器端口公开给主机。这对应于选项--publish-all

。端口绑定:指定端口绑定列表。类似于使用-p

带有 的选项docker run

。卷绑定:使用此字段指定特殊文件夹卷与运行 Docker 守护程序的计算机文件夹之间的绑定。这对应于-v

选项。环境变量:使用此字段指定环境变量列表及其值。这对应于-e

选项。运行选项:使用此字段指定Docker 命令行选项。单击

以展开表格。单击、或组成列表。

码头工人撰写此字段仅在选择基于 Docker Compose 的远程解释器时出现。

命令和选项

您可以使用 Docker Compose 命令行界面的以下命令:命令支持的选项up— 为服务构建、创建、启动和附加到容器。--build

, --abort-on-container-exit

, --timeout TIMEOUT

, --exit-code-from SERVICE

, --scale SERVICE=NUM...

,SERVICE...

run — 针对服务运行一次性命令。请参阅参考文档。--name NAME

, --entrypoint CMD

, -l, --label KEY=VAL

, -u, --user=""

, --rm

, -p, --publish=[]

, --service-ports

, --use-aliases

, -v, --volume=[]

.exec — 在您的服务中运行任意命令。--privileged

, -u, --user USER

, --index=index

.

命令预览

您可以展开此字段以预览完整的命令字符串。示例:如果您在命令和选项字段中输入以下组合:up --build exec --user jetbrains

预览输出应如下所示:docker-compose -f C:\PyCharm-2019.2\Demos\djangodocker-master\docker-compose.yml -fup --build exec --user jetbrains

有关【Pycharm教程】PyCharm 配置 Python 项目运行和调试的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  4. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  5. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  6. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  7. ruby-on-rails - 无法让 rspec、spork 和调试器正常运行 - 2

    GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'

  8. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  9. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  10. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

随机推荐