Pycharm:如何在标准终端中启动(解决curses问题)

10

我遇到了一个奇怪的问题。 使用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.

1
请参考 https://dev59.com/3nVC5IYBdhLWcg3w9GHM 或尝试像这样运行 PyCharm:open -a /Applications/PyCharm.app/ - CrazyCoder
1
我认为问题在于PyCharm没有使用真正的终端,因此您无法对其进行任何操作。只需从真正的终端启动程序即可。 - Bakuriu
1
@Bakuriu请在评论之前仔细阅读整个问题。正如您所看到的,该问题提到了Pycharm无法启动真实终端的问题,并且该问题也暗示我不想仅从常规终端启动它。无论如何,感谢您的关注 :) - Koreth
1
@CrazyCoder 感谢你的提示!"open -a" 命令很有用,Pycharm 的表现也更好一些,尽管集成终端模拟器在管理 curses 方面非常差,并且缺乏其他一些功能。 - Koreth
1
您可以通过使用内置的SSH终端和本地主机连接获得更好的结果。 - CrazyCoder
显示剩余2条评论
2个回答

7
我通过将调试器附加到进程上来解决了curses调试问题。
  • 在终端中启动程序
  • Pycharm -> 工具 -> 附加到进程
  • 选择我的prog
  • 完成
尝试非root用户的附加需要额外的ptrace访问权限。
可以在这里查看详细解释:http://blog.mellenthin.de/archives/2010/10/18/gdb-attach-fails-with-ptrace-operation-not-permitted/#comment-141535 在我的Ubuntu机器上,可以执行以下命令(作为root用户):echo 0 > /proc/sys/kernel/yama/ptrace_scope
或者在/etc/sysctl.d/10-ptrace.conf中相应地将ptrace_scope设置为0

现在请注意,是“PyCharm -> 运行 -> 附加到进程”。 - Charles Merriam

-1
  • 打开PyCharm,确保ncurses已经列在了 文件->设置->项目解释器->Python解释器;
  • 如果你已经安装了2.7和3.x的解释器,请确保选择了正确的一个(支持ncurses)作为默认解释器来启动应用程序所在的项目;

我非常确定你的计算机上同时安装了2.7和3.x - 我曾在安装过两个Python版本时遇到过大量PyCharm相关问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接