小编Nic*_*ini的帖子

PyCharm远程调试在docker容器中

我正在努力弄清楚如何设置在Docker容器中运行的python应用程序(Flask)的远程调试.具体来说,我使用的是docker-compose,PyCharm professional和python 3.5.这是我到目前为止所做的:

  • 我将"pycharm-debug-py3k.egg"复制到项目文件夹中
  • 我在wsgi.py文件中添加了以下行:

    import sys sys.path.append('../ pycharm-debug-py3k.egg')import pydevd pydevd.settrace('0.0.0.0',port = 8200,stdoutToServer = True,stderrToServer = True)

  • 我在PyCharm中创建了一个远程调试配置(通过将本地机器项目路径的路径映射到docker容器中的路径)

通过从PyCharm运行调试配置(单击错误图标),它打印(并挂起):

import sys
sys.path.append('../pycharm-debug-py3k.egg') 
import pydevd 
pydevd.settrace('0.0.0.0', port=8200, stdoutToServer=True, stderrToServer=True)
Run Code Online (Sandbox Code Playgroud)

...在docker容器日志中,我读到:

无法连接到0.0.0.0:4200

我该怎么办?(我的目标是能够在PyCharm中添加断点并停止执行docker容器应用程序以进行调试)

python pycharm docker

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

如何使用 Python ask sdk 检查和获取 Alexa 插槽值

在我的交互模型中,我定义了一个名为的插槽city,该插槽是可选的,不是必需的,以实现意图。

我正在使用 python ask sdk,所以我的处理程序是这样的:

class IntentHandler(RequestHandler):
    """
    Intent handler
    """

    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        return is_request_type("IntentRequest")(handler_input) and \
               is_intent_name("ExampleIntent")(handler_input)

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        access_token = handler_input.request_envelope.context.system.user.access_token

        if access_token is None:
            raise Exception("no access_token provided")

        speech = RESPONSE_MESSAGE_DEFAULT
        handler_input.response_builder.speak(speech)

    return handler_input.response_builder.response
Run Code Online (Sandbox Code Playgroud)

如何检查插槽是否已被用户填充以及如何获取其值?

python alexa alexa-skill alexa-skills-kit alexa-slot

9
推荐指数
1
解决办法
4440
查看次数

UI 中的 Airflow 动态任务映射标识符

借助新的动态任务映射功能,可以使用该expand功能并根据先前任务的输出创建可变数量的任务。

问题在于,正如文档中所示,UI 只会显示生成的任务总数,当任务实例数量很高并且我们需要调试特定错误时,这尤其不舒服。

我尝试搜索文档和 GitHub 页面,但我所能找到的只是建议。有没有人找到解决方案或解决方法来解决这个问题?

airflow airflow-2.x

7
推荐指数
0
解决办法
981
查看次数

使用DBSCAN群集word2vec输出的故障排除提示

我正在分析大约2M原始单词的语料库.我使用gensim的word2vec构建模型,使用sklearn TSNE嵌入向量,并使用sklearn DBSCAN对向量(来自word2vec,而不是TSNE)进行聚类.TSNE输出看起来很正确:2D空间中单词的布局似乎反映了它们的语义.有一组拼写错误,衣服等等.

但是,我无法让DBSCAN输出有意义的结果.它似乎标记了"0"组中的所有内容(图像中的彩色蓝绿色).当我增加epsilon时,"0"组接管所有内容.以下是epsilon = 10和epsilon = 12.5的屏幕截图.使用epsilon = 20,几乎所有内容都在同一组中.

epsilon 10 epsilon 12.5

例如,我希望所有的"衣服"字组聚集在一起(它们是非聚集的@ eps = 10).我还期望更多关于100个簇的顺序,而不是5-12个簇,并且能够使用epsilon控制簇的大小和数量.

那么几个问题.我是否正确理解DBSCAN的使用?还有其他聚类算法可能是更好的选择吗?我怎么知道我的数据有什么好的聚类算法?

考虑到TSNE看起来是正确的,假设我的模型调得很好是否安全?

我可以使用哪些其他技术来将问题与群集隔离开来?我怎么知道这是我的word2vec模型,我对DBSCAN的使用,还是其他什么?

这是我用来执行DBSCAN的代码:

import sys
import gensim
import json
from optparse import OptionParser

import numpy as np
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler

# snip option parsing

model = gensim.models.Word2Vec.load(options.file);
words = sorted(model.vocab.keys())
vectors = StandardScaler().fit_transform([model[w] for w in words])

db = DBSCAN(eps=options.epsilon).fit(vectors)
labels = db.labels_
core_indices = db.core_sample_indices_

n_clusters = len(set(labels)) - (1 if -1 in labels else 0)
print("Estimated {:d} clusters".format(n_clusters), …
Run Code Online (Sandbox Code Playgroud)

python machine-learning gensim scikit-learn word2vec

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

PyMongo for MongoDB 中 find_one_and_update() 和 update_one() 之间的区别?

以下是参考资料:

查找单个文档并更新它,返回原始文档或更新后的文档。

更新与过滤器匹配的单个文档。

在我看来,他们都首先查询所选文档,然后更新它。

我想知道是否存在某种优化差异。唯一的另一个区别是返回值,这让我想知道为什么人们甚至会使用它update_one()

mongodb pymongo

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

MYSQL Docker 容器给出“未知数据库”错误

我正在使用用于 MySQL 的 docker 容器和 docker-compose ,效果很好。

唯一的问题是我unknown database "database_name"每天第一次运行时都会出现错误(Windows启动后)

之后,如果我停止它并重新运行它,我不会出错并且一切正常。

yaml配置:

version: "2.0"
services:
  mysql:
    container_name: mysql
    restart: always
    image: mysql:5.7
    command: --max_allowed_packet=32505856
    ports:
      - "3306:3306"
    volumes:
      - 'C:\data\mysql_db:/var/lib/mysql/'
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    networks:
      - shared
networks:
  shared: 
    external:
      name: shared
Run Code Online (Sandbox Code Playgroud)

编辑:这是启动日志的粘贴箱:https : //pastebin.com/aJiKJ4aE

mysql docker docker-compose

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

如何检测来自 Puppeteer 的请求?

我想知道是否存在一些标志或标签,网站可以使用它来检测来自 Puppeteer 的请求?

当我基于Puppeteer运行我的代码来访问目标网站时,我发现该网站似乎知道该请求是由Puppeteer发出的。

怎么办呢?

webautomation node.js puppeteer

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

Alexa 技能帐户与 Google API 凭据链接,刷新令牌出现问题

我在 Alexa 帐户链接授权方面遇到了一些问题。

这些是我遵循的步骤:

  1. 我从 Google Cloud Console 获得了凭据(客户端 ID、客户端机密...)
  2. 在 Alexa 开发者控制台上设置,使用“Auth Code Grant”作为授权授权类型
  3. 激活了我的 Alexa 应用程序上的技能并使用我的 Google 帐户成功登录
  4. 现在我在请求中获得了访问令牌,在 handler_input.request_envelope.context.system.user.access_token

问题是访问令牌在一小时后过期,Alexa 不管理令牌的刷新

我应该怎么做才能避免每次一小时后都要求我的用户登录?我应该Implicit grant用作授权类型吗?我应该以某种方式获得刷新令牌吗?

附加信息:这是一项使用 Python3 连接到 AWS Lambda 的自定义技能

google-api google-authentication alexa alexa-skill alexa-skills-kit

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

使用推送订阅测试 Google Cloud PubSub 模拟器

我正在尝试设置一个适用于推送类型订阅的 GCP PubSub 服务。然而,在开发阶段创建一个是不可能的,而我没有可访问的端点。

我认为模拟器将允许我指定一个本地端点,以便该服务可以在本地完美运行。

但是,在设置之后,我在Node.js pubsub 库中找不到在指定其选项的同时创建订阅的方法,没有示例。

这是创建简单、默认、拉取、订阅的非常简单的方法:

await pubsub.topic(topicName).createSubscription(subscriptionName);
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-console google-cloud-pubsub

2
推荐指数
1
解决办法
1700
查看次数