相关疑难解决方法(0)

Python线程字符串参数

我遇到Python线程问题并在参数中发送字符串.

def processLine(line) :
    print "hello";
    return;
Run Code Online (Sandbox Code Playgroud)

.

dRecieved = connFile.readline();
processThread = threading.Thread(target=processLine, args=(dRecieved));
processThread.start();
Run Code Online (Sandbox Code Playgroud)

其中dRecieved是连接读取的一行字符串.它调用一个简单的函数,到目前为止只有一个打印"hello"的工作.

但是我收到以下错误

Traceback (most recent call last):
File "C:\Python25\lib\threading.py", line 486, in __bootstrap_inner
self.run()
File "C:\Python25\lib\threading.py", line 446, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: processLine() takes exactly 1 arguments (232 given)
Run Code Online (Sandbox Code Playgroud)

232是我试图传递的字符串的长度,所以我猜它会将其分解为每个字符并尝试传递这样的参数.如果我只是正常调用函数,它工作正常,但我真的想将它设置为一个单独的线程.

python multithreading

131
推荐指数
2
解决办法
16万
查看次数

如何在不使用ctrl-c的情况下停止烧瓶应用

我想通过使用flask-script来实现一个可以停止烧瓶应用的命令.我已经搜索了一段时间的解决方案.因为框架不提供"app.stop()"API,所以我很好奇如何编写代码.我正在研究Ubuntu 12.10和Python 2.7.3.

python flask flask-extensions

75
推荐指数
10
解决办法
9万
查看次数

正确终止在线程中运行的 Flask Web 应用程序

如何正确终止在单独线程中启动的 Flask Web 应用程序?我发现了一个不完整的答案,不清楚如何去做。下面的脚本启动一个线程,该线程又启动一个 Flask 应用程序。当我按CTRL+ 时C,某些内容不会被终止,并且脚本永远不会停止。在正确except KeyboardInterrupt:终止app和之后添加代码会很好thread_webAPP()。我知道如何终止线程,但首先我需要终止应用程序:

def thread_webAPP():
    app = Flask(__name__)

    @app.route("/")
    def nothing():
        return "Hello World!"

    app.run(debug=True, use_reloader=False)
    # hope that after app.run() is terminated, it returns here, so this thread could exit


t_webApp = threading.Thread(name='Web App', target=thread_webAPP)
t_webApp.start()

try:
    while True:
        time.sleep(1)

except KeyboardInterrupt:
    print("exiting")
    # Here I need to kill the app.run() along with the thread_webAPP
Run Code Online (Sandbox Code Playgroud)

python multithreading kill-process flask

6
推荐指数
1
解决办法
1万
查看次数

阻止 Flask 初始化阻塞

我正在向基于插件的应用程序添加 Flask 支持。启动时,应用程序会实例化许多插件类。我认为这就像在类初始化时启动 Flask 一样简单,但相反,当它点击 Flask 启动方法时,整个应用程序会挂起。

考虑以下示例:

#!/usr/bin/env python

from flask import Flask

class TestClass:
    def __init__(self):
        print('Initializing an instance of TestClass')
        self.app = Flask(__name__)
        self.app.run()
        print("Won't get here until Flask terminates!")


foo = TestClass()
Run Code Online (Sandbox Code Playgroud)

在 Flask 终止之前,不会评估第二个打印行。

有没有一种明智的方法可以强制app.run进入后台,以便类继续其初始化步骤,同时仍然能够在类的其余部分中与 Flask 进行通信?

python multiprocessing flask

5
推荐指数
1
解决办法
5848
查看次数

在 PyQt5 GUI 中使用 Dash (plot.ly)

我在尝试使用 Dash (绘图)创建仪表板并使用 PyQt5 创建的 GUI 时遇到问题。

我尝试将以下示例代码作为模块并放在代码末尾:

import dash
import dash_core_components as dcc
import dash_html_components as html


def run_dash(data, layout):


   app = dash.Dash()

   app.layout = html.Div(children=[
   html.H1(children='Hello Dash'),

   html.Div(children='''
    Dash: A web application framework for Python.
   '''),

   dcc.Graph(
    id='example-graph',
    figure={
        'data': data,
        'layout': layout
    }
)
])
   app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)

但每次我收到错误can't find '__main__' module in ''

我知道最初,要创建 Dash,需要使用如下所示的主防护:

if __name__ == '__main__':
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)

但我的主窗口已经有了一个主防护,所以我不知道如何使两者一起工作。作为参考,这是我的 MainWindow 主防护:

if __name__ == '__main__':

app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python pyqt5 plotly

4
推荐指数
1
解决办法
7490
查看次数

如何同时运行kivy和flask应用程序?

我有一个作为服务器的 Flask 应用程序,我有一个作为服务器前端的 kivy 应用程序。如何运行flask然后运行kivy应用程序,以便它们同时运行?

烧瓶应用程序:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello'

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

基维应用程序:

from kivy.app import App
from kivy.builder import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
kivy.require('1.10.0')

Builder.load_file('kivy.kv')

sm = ScreenManager()

class MainScreen(Screen)
    pass

class OtherScreen(Screen)
    pass

sm.add_widget(MainScreen(name='main'))
sm.add_widget(OtherScreen(name='other'))

class MyApp(App):
    def build(self):
        return sm


MyApp().run()
Run Code Online (Sandbox Code Playgroud)

更新: 如果有人在使用 apache 实现网络服务器时遇到问题,在我看来,尝试使用 docker,更简单、更快的解决方案!

python flask kivy

3
推荐指数
1
解决办法
4272
查看次数