Pycharm IDE试图从sh而非bash加载django脚本

2 投票
2 回答
856 浏览
提问于 2025-04-16 22:34

如果我在Django中尝试编译消息,就会出现这样的错误:

sh: msgfmt: command not found

但是在bash(终端)中,这些命令都能正常工作……我该怎么做才能让Pycharm从bash而不是sh来运行这些命令呢?

谢谢!

2 个回答

1

这个问题可以通过安装 gettext 工具来解决。在 Debian 或 Ubuntu 系统上,你可以执行 sudo apt-get install gettext 来安装它。如果你是 Windows 用户,可以参考 Django 文档 上的说明。

你还可以查看 这个链接这个链接,里面有其他的讨论和解释。

我也遇到了同样的错误信息,但原因不同,我是通过这种方式解决的。

1

其实,PyCharm 本身并不使用 sh 或 bash 来执行这些命令;它是通过设置中的 Python 解释器来运行 manage.py 这个 Python 脚本的。compilemessages 命令使用 os.system() 这个 Python 函数来运行 msgfmt 命令。os.system() 函数会调用系统的 system() C 函数,而这个函数总是使用 /bin/sh。

所以,你需要配置你的操作系统,让 msgfmt 可以从 /bin/sh 中运行。

撰写回答