2016-12-25 183 views
0

我建立在Pycharm脚本时(姑且称之为SCRIPT1)调用另一个脚本(我们称之为SCRIPT2)接受参数的输入Pycharm,导入错误不模块名称,使用使用os.system

SCRIPT2在它xlrdimport xlrd) 当我手动运行SCRIPT2,并给它需要的参数使用,它工作得很好

SCRIPT1,来电SCRIPT2(使用os.system())如下:

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

,我得到这个错误:

from file script2

import xlrd

ImportError: No module named 'xlrd'

没有人知道如何解决它?或使其正常工作?

我确信我给作为输入参数,他们是对的 和xlrd在项目定义解释

非常感谢

+0

做这个错误只发生在pycharm中?当您手动运行script1时它是否工作,或者您得到相同的错误?如果它不工作比pycharm与它无关 – DorElias

+0

@DorElias,当我从pycharm运行script2时它工作得很好 –

回答

0

您可能调用了错误的python。如果在命令行工作运行python script2...,使用where python获得的完整路径,并用它调用os.system时,例如:

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

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

+0

那里调用script2!我认为这是因为我有2个安装 –

+0

非常感谢,我还会考虑将'os.system'更改为'call' , 谢谢 –

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。

+0

是的,它们在同一个文件夹中 我有2个安装的python,python2.7和python3 和我不想使用函数,我想从script1 –

相关问题