如何在没有交互模式的情况下调用另一个.py文件中定义的python函数

时间:2015-01-27 17:55:03

标签: python-2.7

我写了两个脚本:modbus_master.py和modbus_helpers.py。

modbus_helpers.py只是我定义的一堆原始函数,我试图从modbus_master.py调用。

当我尝试执行' modbus_master.py'从Windows CLI发生这种情况......

C:\Python27\modbus_simulator>modbus_master.py
Traceback (most recent call last):
File "C:\Python27\modbus_master.py", line 3, in <module>
import modbus_helpers
ImportError: No module named modbus_helpers

然而, 如果我进入python交互模式并执行此操作...

C:\Python27\modbus_simulator>python
Python 2.7.5 (default, May 15 2013, 22:43:36) MSC v.1500 32 bit (Intel)  on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import modbus_master

调用modbus_helpers.py的modbus_master.py中的代码工作得很好。那么我如何在这里弥合这个差距,以便我可以这样做并运行脚本而不会出错?

C:\ Python27 \ modbus_simulator&GT; modbus_master.py

modbus_master.py中的代码:

import sys
import json
import modbus_helpers
import os

def printRegsets():
    print 'these register sets were piped in...\r\n'
    regsetIndex = 0
    for regset in registersetsList:
        print str(regsetIndex) , ':', regset['Name']
        regsetIndex = regsetIndex + 1

path = os.path.normpath('C:\Python27\modbus_simulator\export2.txt')
registersetsList = modbus_helpers.getRegisterSetFromACMExportFile(path)
printRegsets()

1 个答案:

答案 0 :(得分:0)

找到问题的解决方案。代码没有任何问题。我错过了显而易见的...... modbus_master.py必须与modbus_helpers.py在同一个文件夹/目录中才能使'import'语句生效。