python导入另一个不起作用的python脚本

时间:2017-09-14 21:40:40

标签: python

我有两个python脚本位于同一目录(C:\\Users\\user1\\general)中。我想从第二个第二个脚本在一个脚本中执行一个函数,所以我试图在script1中导入script2。这是我的script2

import sys
sys.path.insert(0, 'C:\\Users\\user1\\general')
import script1
from flask import Flask
from flask_socketio import SocketIO, send


app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'
socketio = SocketIO(app)

@socketio.on('message')
def handleMessage(msg):
    print('Message: ' + msg)
    # script1 has function called api_call(id,message)
    messsage = api_call('user1', msg)
    send(messsage, broadcast=True)

if __name__ == '__main__':
    socketio.run(app)

这是我的script1

import sys

def api_call(Id,message):
    # Code processing


if __name__ == '__main__':

    uId = sys.argv[0]
    message = sys.argv[1]
    api_call(userId,message)

当我执行script2以上时,我得到NameError: name 'api_call' is not defined。似乎某种方式导致script1没有被导入,因此该功能无法通过。

注意:之前我曾尝试过不使用sys.path.insert()并且同样的结果。

2 个答案:

答案 0 :(得分:3)

尝试from script1 import api_call:这样就可以从script1模块导入api_call功能。

答案 1 :(得分:-1)

Python 2

在同一文件夹中创建__init__.py

使用以下命令导入

from script1 import api_call

Python 3

使用以下命令导入

from .script1 import api_call