Pycharm:如何启动标准终端(解决诅咒问题)

Posted

技术标签:

【中文标题】Pycharm:如何启动标准终端(解决诅咒问题)【英文标题】:Pycharm : how-to launch for a standard terminal (to solve an issue with curses) 【发布时间】:2013-06-05 04:38:25 【问题描述】:

我遇到了一个奇怪的问题。 使用 Pycharm(请不要对这个事实进行攻击),我正在尝试启动一个简短的应用程序,它使用 ncurses 在我的任期内呈现一些东西。

虽然我可以简单地启动项目而没有任何问题,但从 Pycharm 启动它会引发以下错误:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/curses/__init__.py", line 33, in initscr
    fd=_sys.__stdout__.fileno())
error: setupterm: could not find terminal

Process finished with exit code 0 

据我所知,一切都与终端环境变量有关。 Pycharm 从它自己的终端实例启动项目(运行或调试),curses 将无法使用它。所以,我想知道如何配置 Pycharm 以在常规终端中启动我的项目。

该项目使用 Python 2.7。 Pycharm 在 EAP 版本 129.258 中(不适用于其他版本,包括稳定版)

感谢您的关注。

K.

【问题讨论】:

查看 ***.com/q/135688/104891 或尝试像这样运行 PyCharm:open -a /Applications/PyCharm.app/ 我认为问题在于 PyCharm 不使用真正的终端,因此您无能为力。只需从真实终端启动程序。 @Bakuriu 请在发表评论之前查看整个问题。如您所见,问题提到问题是 Pycharm 没有启动真正的术语,并且问题还暗示我不想只从常规终端启动它。无论如何,感谢您的关注:) @CrazyCoder 感谢您的提示! "open -a" 有帮助,Pycharm 工作得更好一些,即使集成的终端模拟器在管理诅咒方面很差,并且缺乏一些其他功能。 使用内置的 SSH 终端和 localhost 连接可以获得更好的结果。 【参考方案1】:

我通过将调试器附加到进程来解决了 curses 调试问题。

在终端中启动程序 Pycharm -> 工具 -> 附加到进程 选择我的程序 完成

尝试以非 root 身份附加需要额外的 ptrace 访问权限。

在此解释:http://blog.mellenthin.de/archives/2010/10/18/gdb-attach-fails-with-ptrace-operation-not-permitted/#comment-141535

在我的 ubuntu 机器上: echo 0 > /proc/sys/kernel/yama/ptrace_scope(作为根)

分别设置ptrace_scope to 0 in /etc/sysctl.d/10-ptrace.conf

【讨论】:

注意它现在是“PyCharm -> 运行 -> 附加到进程”。【参考方案2】: 启动 PyCharm 并确保 ncurses 在 File->Settings->Project Interpreter->Python Interpreter 中列出; 如果您安装了 2.7 和 3.x 解释器,请确保为您启动应用程序的项目选择正确的解释器(支持 ncurses)作为默认值;

我非常确定您的机器上同时安装了 2.7 和 3.x - 对于安装了两个 Python 分支的情况,我遇到了 pycharm 的大部分问题。

【讨论】:

以上是关于Pycharm:如何启动标准终端(解决诅咒问题)的主要内容,如果未能解决你的问题,请参考以下文章

如何正确刷新诅咒窗口?

CMake 找不到诅咒

从子进程读取的实时标准输出仅在从 PyCharm 而不是终端运行时才有效

如何在 Pycharm 终端中使用 python-evtx 库运行脚本? [复制]

已解决pycharm 终端无法激活conda环境

ubuntu创建pycharm图标&在终端中使用命令行启动pycharm的配置