Pycharm, importError no module name, when using os.system

Pycharm, importError no module name, when using os.system

我正在 Pycharm 中构建一个脚本(我们称之为 script1),该脚本调用另一个脚本(我们称之为 script2) 将参数作为输入

script2 正在使用 xlrd (import xlrd) 当我手动 运行 script2 并给它所需的参数时,它工作得很好

script1,调用 script2(使用 os.system())如下:

os.system("python script2 -param1 ..")

我得到这个错误:

from file script2

import xlrd

ImportError: No module named 'xlrd'

有人知道怎么解决吗?或者让它正常工作?

我确认输入的参数是正确的 并且 xlrd 在项目解释器中定义

非常感谢

确保两个文件都在同一个文件夹中。你有超过 installation/virtualenv 个 python 吗?

使用 python 代码的更好选择是定义函数并导入它们:

#script2.py
import xlrd
def foo():
    print("I AM IN FOO NOW!")

#script1.py
import script2
script2.foo()

如果您确定要在不同的进程中调用 script2,请考虑使用 subprocess.check_output 作为更好的 API。

你可能打错了python。如果命令行中的 运行 python script2... 有效,请使用 where python 获取完整路径并在调用 os.system 时使用它,例如:

os.system("c:\pythons7\python script2 -param1 ..")

(顺便说一句 - It is recommended to replace os.systemsubprocess.call 或其他一些子流程功能)

过去帮助我解决这个问题的方法是在脚本顶部附加主文件路径,你是 运行 到 os.system

import sys
# for
sys.path.append('/home/user/your_folder_with_python_scripts')