我正在Pycharm中构建一个脚本(我们称之为 script1 ),该脚本调用另一个脚本(让我们称之为 script2 ),将参数作为输入
script2 正在其中使用xlrd
(import xlrd
)
当我手动运行 script2 并为其提供所需的参数时,它的效果非常好
script1 ,调用 script2 (使用os.system()
),如下所示:
os.system("python script2 -param1 ..")
我收到此错误:
来自文件script2
导入xlrd
ImportError:没有名为'xlrd'的模块
有谁知道如何修复它?或使其正常工作?
我确定了作为输入的参数,它们是正确的 和xlrd在项目解释器中定义
非常感谢
答案 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
或其他一些子流程函数)