我有兩個python
腳本在同一個目錄(C:\\Users\\user1\\general
)。我想從第二個腳本執行一個腳本中的函數,所以我試圖導入script1
script2
。這裏是我的script2
:python導入另一個python腳本不工作
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()
,然後也是相同的結果。
你從SCRIPT1進口*嘗試''? – saniales
或將'script2'中的'api_call'改爲'script1.api_call'? – FamousJameous
@saniales這是一個非常糟糕的做法。 –