Python 命令行无法识别模块

Python command line not recognizing modules

我有一个 Python 脚本,当我在 Spyder 或其他 editors/IDEs 中 运行 它时,它 运行 非常完美,但是当我双击它时,或者尝试通过 Pentaho Shell 步骤 运行,它不会 运行 因为我正在使用 pandas 模块。

错误:

2017/09/25 16:00:18 - etl_script.py - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : (stderr) Traceback (most recent call last):
2017/09/25 16:00:18 - etl_script.py - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : (stderr) File "C:\Users\giorge.luiz\etl_script.py", line 8, in <module>
2017/09/25 16:00:18 - etl_script.py - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : (stderr) import pandas as pd
2017/09/25 16:00:18 - etl_script.py - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : (stderr) ImportError: No module named pandas

我该如何解决这个问题?

可能 IDE 您使用的版本或 python 可执行文件与您保存在 PATH 环境变量中的版本不同。

要准确查明是否是这样,请尝试创建一个脚本:

import sys
print(sys.executable)

尝试在 IDE 中执行并双击 and/or Pentaho Shell 步骤并注意路径是否相同。

在 IDE 外部使用脚本和您习惯使用的相同模块的一种快速 'dirty' 方法是添加(在 *nix 系统下):

#!<path-to-executable>

在脚本的开头(必须是第一行)并使脚本可执行( chmod u+x scriptname.py)。

备注:

  • <path-to-executable> 是您使用 print(sys.executable)
  • 打印的路径
  • 此方法不可移植! 可移植脚本的一个好方法是 package it for pypi or similar (when you finish creating it!) and specify your dependencies, or use pip to install your packages inside virtualenv。后者是我平时做和推荐的。