我是PyCharm的新手。我使用IDLE已有很长时间了。
在IDLE中执行脚本后使用Python对象非常方便。使用PyCharm与交互式python shell执行脚本对象后,是否可以使用脚本对象?
例如,我们有一个“测试”项目,其中有一个文件“ test.py”:
a = '123'
print a
执行后,我们可以获得结果:
123
Process finished with exit code 0
如何在交互式shell中使用字符串“ a”?
Answers:
这将启用python shell(注意>>>
屏幕截图上的绿色),您可以在其中访问当前作用域中的所有变量,并执行在Python shell中通常执行的所有操作。
在最新的pycharm版本中,您将获得完整的ipython解释器,而不是普通的python shell(如果已安装ipython)。
作为一种更舒适的选择,如果只需要检查作用域中对象上的某些变量,访问成员或调用方法,则一旦达到断点,请在当前作用域中选择一个表达式,右键单击->评估表达式(或使用下的菜单中显示的快捷键Run→ Evaluate Expression...),根据需要编辑-你可以输入任何的Python表达式,可用自动完成-然后按Enter键(或单击评估)检查结果。
支持多行和多行表达式:要获取“检查”对话框的多行版本,请单击“代码片段”模式或在编辑器中选择多行代码,然后评估表达式。您可以将值分配给现有变量(无法定义新变量),然后运行整个代码块。
要在调试模式下达到断点后查看变量的值,请将鼠标指针悬停在变量上(1-2秒),该值将显示在工具提示中。
提示中将包含一个➕图标,单击该图标将在弹出窗口中打开检查器。
对于作用域中的变量,检查器显示在底部面板的“调试” >“调试器”下。
对于pandas
数据框,您将在变量检查器面板或悬停弹出窗口中看到“作为数据框查看”链接-单击该链接将在“数据视图”面板中将数据框显示为表格。
在最新的Pycharm版本(2019+)中,解释器图标现在看起来有所不同:
同样在unittest / pytest调试用户界面中,图标也首先放置在图标栏中。
我发现先前对Piga-fetta,Games Brainiac和kobejohn的回答很有用,但并不令人满意。所以我在这里提供第三个选择:
将选定的代码加载到控制台中(我的建议)
使用Shift+ Alt+E将所选代码或光标所在的行加载到控制台中并立即运行它。这也有一些缺点:
但是作为回报,我们得到了比IDLE更好的功能(我认为):能够一次运行一个选择的代码。
在这里阅读。
使用断点并评估表达式(Alt- F8)(由Piga-fetta建议)
这在大型应用程序中非常有用,在大型应用程序中我们需要在代码中的某些位置进行调试,但对于交互式编码则没有太大用处。所以这不是我们想要的。
使用工具->运行Python控制台(由Games Brainiac和kobejohn建议)
这是我们想要的,但是有点麻烦,尤其是当我们要运行的模块不在项目的根目录中时。
您可以在PyCharm 2和PyCharm 3中简单地使用Python控制台。由于您的项目根目录已经添加到您的项目中,因此您可以简单地导入PYTHONPATH
:
因此,让我通过一些屏幕截图进行演示:
console.py
在根目录下制作文件console.py
文件导入变量在那里,您已经成功导入了变量。
我找到了最佳答案: 执行后与程序进行交互
引用以下答案:
++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++
从python --help的输出中:
-i:运行脚本后进行交互检查;即使stdin似乎不是终端,也强制进行提示;也PYTHONINSPECT = x
要在PyCharm中设置解释器选项,请转到“运行” |“编辑配置”
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++
我尝试了它,并且可以正常工作-只需将“ -i”(不带引号)用作“解释器选项”即可。请注意,如果仅在“运行/调试配置”中更改“默认值”,则对于之前已运行的脚本可能不会立即生效;您将需要一个一个地编辑这些脚本的配置。
*更新
让我在这里写下比我链接的答案更多的步骤。
import myscript
(不带.py)(如果您想使用短名称,请使用import myscript as m
main()
如果有障碍物,您可能需要运行if __name__ == '__main__'
)a
可以在myscript.a
myscript = reload(myscript)
*原版的
在PyCharm 3.0中,您可以执行以下操作:
那是您要找的东西吗?如果没有,请尝试一下,让我知道这与您想要的有什么不同。