模块在 cmd 中有效,但在 Pycharm 中无效

Posted

技术标签:

【中文标题】模块在 cmd 中有效,但在 Pycharm 中无效【英文标题】:Module works in cmd but not in Pycharm 【发布时间】:2020-06-15 00:13:59 【问题描述】:

我正在尝试让 PostGIS shp2pgsqlpgsql2shp 模块在 PyCharm 中工作。我可以让它们在命令提示符下正常工作,但不能在 PyCharm 中运行我的脚本:

'shp2pgsql' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

找到的最相似的谷歌搜索是pycharm and subprocess - what works in console doesn't work in Pycharm,但并不完全相同。

我已经根据https://www.jetbrains.com/help/pycharm/absolute-path-variables.html在PyCharm中设置了path变量,但还是重现了同样的错误。

这是我的代码:

import time
import subprocess

command = 'shp2pgsql -I -d -s 27001 //d10/t/ca/analysis/road/extents/ne_extent.shp d.extent_ne| psql -q -d projects -h postgres.local'
process = subprocess.Popen(command, shell=True)
while process.poll() is None:
    time.sleep(0.5)

我在 Windows 10 中使用 PyCharm 版本 2019.3.1。

【问题讨论】:

您是否在 PyCharm 中使用了正确的 Python 解释器?我的意思是在 cmd 中使用的相同 我认为它是一样的。我只安装了一个。但我也不认为命令提示符在调用 shp2pgsql 和 pgsql2shp 时完全不使用 python,那这有关系吗? 【参考方案1】:

转到设置 --> 工具 --> 终端 --> 项目设置并添加一个新的环境变量,指定 postgis 的 bin 文件夹位置。我还将开始目录更改为 C:\,而不是我当前正在处理的 PyCharm 项目的路径。不完全确定是哪个完成了这项工作,但现在可以了。

【讨论】:

以上是关于模块在 cmd 中有效,但在 Pycharm 中无效的主要内容,如果未能解决你的问题,请参考以下文章

Python:Pycharm下无法导入安装好的第三方模块?

我无法在 pycharm 或 CMD 上下载模块“pandas”

将 ansi 打印到 windows cmd 在 IPython 中有效,但在其他任何地方都无效。为啥?

解决opencv在pycharm中无代码自动提示的bug

Pycharm/Python第三方模块配置

cmd 运行py脚本,提示找不到xx模块