繁体   English   中英

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

[英]Pycharm, importError no module name, when using os.system

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

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

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

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

我得到这个错误:

来自文件 script2

导入 xlrd

导入错误:没有名为“xlrd”的模块

有谁知道如何修理它? 或者让它正常工作?

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

非常感谢

确保两个文件都在同一文件夹中。 您是否有多个安装/ 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...运行python script2... ,请使用where python获取完整路径,并在调用os.system时使用它,例如:

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

(顺便说一句- 建议替换 os.systemsubprocess.call或一些其他子功能)

过去帮助我解决此问题的方法是在您通过 os.system 运行的脚本顶部附加主文件路径

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM