我有两个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()
并且同样的结果。
答案 0 :(得分:3)
尝试from script1 import api_call
:这样就可以从script1
模块导入api_call
功能。
答案 1 :(得分:-1)
在同一文件夹中创建__init__.py
。
使用以下命令导入
from script1 import api_call
使用以下命令导入
from .script1 import api_call