使用os.system时,Pycharm,importError没有模块名称

时间:2016-12-25 17:10:34

标签: python python-2.7 python-3.x pycharm xlrd

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

script2 正在其中使用xlrdimport xlrd) 当我手动运行 script2 并为其提供所需的参数时,它的效果非常好

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

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

我收到此错误:

  

来自文件script2

     

导入xlrd

     

ImportError:没有名为'xlrd'的模块

有谁知道如何修复它?或使其正常工作?

我确定了作为输入的参数,它们是正确的 和xlrd在项目解释器中定义

非常感谢

2 个答案:

答案 0 :(得分:1)

确保两个文件都在同一个文件夹中。你有不止一个python的安装/ virtualenv吗?

一个更好的选择来破坏python代码是定义函数并导入它们:

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

#script1.py
import script2
script2.foo()

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

答案 1 :(得分:0)

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

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

(BTW - It is recommended to replace os.system subprocess.call或其他一些子流程函数)