问题标签 [twistd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 twistd 启动 python Klein 不会引发模块错误
- 嗨,我正在尝试使用
twistd
方法启动 Klein 服务器。我通过阅读 Klein文档进行了尝试。 - 但是当我尝试启动服务器时,它说找不到模块。
这是我尝试过的示例代码,
helloworld.py:
然后我运行以下命令:
我收到以下错误:
python - 如何为 Twisted-Klein 服务器上的特定 API 端点禁用 HTTP 基本身份验证
我有一个简单的Twisted-Klein
服务器,全局启用了 HTTP 基本身份验证:
我只想为特定的 API 端点禁用身份验证,例如,在这种情况下为/health
API 端点。我已经阅读了文档,但无法完全理解它。
python - Buildbot 不以默认配置启动
以为我会尝试一下 buildbot 。所以我按照教程做了这些:
sudo pip install virtualenv 'buildbot[bundle]'
virtualenv bb-master
source bb-master/bin/activate
buildbot create-master master
buildbot start
一切顺利,直到最后一个命令,当我得到:
跟踪twistd.log 直到启动完成.. buildmaster 启动时间超过10 秒,因此我们无法确认它是否正确启动。请“tail twistd.log”并查找显示“BuildMaster 正在运行”的行以验证正确启动。
twistd.log
是空的,我没有得到其他输出。我试过添加--nodaemon
无济于事。还有其他人遇到这个问题吗?
Python 3.6.0、Buildbot 0.9.5、Twistd 17.1.0、Arch Linux(也在 Alpine v3.5 上尝试过,结果相同)
编辑:除了上述步骤之外,我还按照说明将 master.cfg.sample 重命名为 master.cfg。
python - 检查使用 twistd 初始化扭曲服务是否失败并出现错误
我使用twistd
插件系统启动 Twisted 应用程序。在这个SO answer的帮助下,我实现了一个 PID 文件(其中写入了进程 ID)来确定守护程序是否已成功启动。
对 twisted 守护程序(已启动或尚未启动)的监视由本机 (OS) 应用程序完成,该应用程序仅检查 PID 文件是否存在并读取其内容以查看是否存在具有该 PID 的活动进程。
到目前为止,一切都很好。我编写的扭曲插件创建了一个Service对象,它接受一个Driver对象作为参数。所有硬件特定的操作都包含在这个Driver类中。
我认为服务的内部细节超出了问题的范围。但只是为了澄清会有很多这样的Service通过网络相互交互。
现在,考虑驱动程序使用 UART/串行通信与硬件交互。目标硬件始终使用固定名称枚举自身,该名称在驱动程序中用于识别硬件的(物理)可用性。
在某些情况下,硬件可能没有(物理上)连接到系统。因此,我希望实现一种方法来识别硬件是否实际连接。
这是一个最小的扭曲插件代码
这是服务和司机
从上面的代码可以看出,如果没有枚举为TARGET_HARDWARE的硬件设备,那么self.ser
就是None
。调用时会导致错误操作control_something()
。
我想防止这种情况发生,或者更准确地提示用户在使用twistd
.
debian - Debian 升级后找不到 Twistd 插件
在我从 debian jessie 升级到 stretch 后,twistd 不再找到我的插件。我找不到问题所在。我想我现在需要指定一些以前不需要或类似的路径。
我收到错误/usr/bin/twistd: Unknown command: otfbot
消息,在命令列表中,软件的两个命令不再列出。twisted 插件的目录结构是
并且都实例化了一个 ServiceMaker。
twisted - 正确使用 API 和 daemonized twisted 中的线程
我正在使用其 API 使用 threading.Thread 的服务,并且我想在其中使用 Deferreds。
如果我像标准 python 模块一样运行它,我没有任何问题。就像是:
如果我使用 twistd -y运行以下 .tac,则该服务根本不起作用:
我认为第二种情况的问题是主反应器线程本身没有产生服务线程,但是我不明白为什么(以及是否)它在第一种情况下发生......我使用 callLater 作为解决方法 -成功地:
但我不知道这是否是解决这个问题的正确方法。你有什么建议吗?
python - 推迟所有的通用方法?
我需要一些类似于 JS 的Promise.all()的扭曲的东西。我找到了这个FireWhenAllFinish示例,但它有问题(抛出异常,可能已过时)。
这不是一个真正的问题,因为我找到了解决方案,见下文。仍然在此处发布,以便对其他人有所帮助。
python - 扭曲吞咽异常
我基本上复制了这个例子。只是试图让最基本的工作:发布和消费。因此添加了一个简单的basic_publish。
消费者.py
执行与python3 -u consumer.py
我得到的唯一错误是:Unhandled error in Deferred:
. 就这样?相当令人沮丧。
- 为什么会抛出异常?
- 我的追溯在哪里?
python - 在 twistd 而不是 python 中运行
我需要调试我扭曲的应用程序。我正在使用 pycharm,据我了解,我可以使用 --no-daemon 选项在 twistd 中启动我的应用程序,以便逐步执行代码。
我有以下代码来启动服务器。
我看到 twistd 有一个 -y 选项,但我无法让它运行我的应用程序。
我的目录树如下。
我一直通过执行调用 main() 函数的 run.py 来运行应用程序。
如何在命令行上使用 twistd 启动此应用程序以便调试该应用程序?
作为参考,我指的是如何在 PyCharm中调试扭曲的应用程序,以便尝试在 pycharm 中调试扭曲的应用程序。
如果有更好的方法可以在请求中设置断点,请告诉我。
谢谢!
python - 为什么 twistd 不能从当前工作目录导入模块?
请考虑以下测试用例。
项目目录的结构如下:
bar.py
包含一个平凡的类定义:
test.tac
,Twisted 应用程序配置文件,包含一个导入语句:
运行时twistd -ny test.tac
,我收到以下错误:
这是非常令人惊讶的,因为python test.tac
不会产生错误。为了进一步调试,我修改test.tac
如下:
这表明运行python <filename>
会将当前工作目录添加到路径之前,而运行twistd <filename>
不会。
我的问题是双重的:
- 这是一个错误,还是有充分的理由
twistd
这样做? - 解决此问题的推荐方法是什么
twistd
。我可以设置某种选项还是需要手动完成?