小编Que*_*XDD的帖子

sys:1: RuntimeWarning: 协程从未被等待

我正在尝试编写一个请求处理程序来帮助我以异步模式发送请求。当我用 Ctrl+D 或 exit() 关闭 python 终端时它会提示

表明 sys:1: RuntimeWarning: coroutine was never awaited

import asyncio
import urllib.request
import json 

class RequestHandler:
    def SendPostRequest(method="post",url=None, JsonFormatData={}):
        # Encode JSON
        data =json.dumps(JsonFormatData).encode('utf8')
        # Config Request Header
        req = urllib.request.Request(url)
        req.add_header('Content-Type', 'application/json')      
        # Send request and wait the response
        response = urllib.request.urlopen(req,data=data)    
        return response 

    async def AsyncSend(method="post",url=None, JsonFormatData=None):
        if method == "post":
            loop = asyncio.get_event_loop()
            task = loop.create_task(SendPostRequest(method="post",url=url,JsonFormatData=JsonFormatData))

###################################
# Example
##### In main python terminal, i run like this:
# from RequestHandler …
Run Code Online (Sandbox Code Playgroud)

coroutine python-3.x python-asyncio

5
推荐指数
2
解决办法
4万
查看次数

如何在docker容器中安装不同的python版本

我在我的机器内安装了gettyimages/spark dockerimage 和。jupyter/pyspark-notebook

但是由于gettyimage/sparkpython 版本为 ,3.5.3jupyter/pyspark-notebookpython 版本为3.7,会出现以下错误:

例外:worker 中的 Python 版本 3.5 与驱动程序 3.7 中的版本不同,PySpark 无法使用不同的次要版本运行。请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。

因此,我尝试升级gettyimage/spark镜像的 python 版本或降级 docker 镜像的 python 版本jupyter/pyspark-notebook来修复它。

  • 先说方法一,jupyter/pyspark-notebook先降级python版本:

我用来conda install python=3.5降级docker镜像的python版本 jupyter/pyspark-notebook。然而,在我这样做之后,我的jupyter笔记本无法连接到任何单机ipynb,并且内核似乎已死。另外,当我conda再次输入时,它显示了我conda command not found,但是 python 终端运行良好

我比较了降级之前和之后的 sys.path

['','/usr/local/spark/python','/usr/local/spark/python/lib/py4j-0.10.7-src.zip','/opt/conda/lib/python35.zip' , '/opt/conda/lib/python3.5', '/opt/conda/lib/python3.5/plat-linux', '/opt/conda/lib/python3.5/lib-dynload', '/ opt/conda/lib/python3.5/site-packages']

['','/usr/local/spark/python','/usr/local/spark/python/lib/py4j-0.10.7-src.zip','/opt/conda/lib/python37.zip' ,'/opt/conda/lib/python3.7','/opt/conda/lib/python3.7/lib-dynload','/opt/conda/lib/python3.7/site-packages']

我认为或多或少是正确的。那么为什么我无法使用我的jupyter笔记本电脑连接到狗舍呢?

  • 所以我使用另一种方法,我尝试升级 …

python docker pyspark

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

如何使用Perl中的正则表达式提取URL的一部分?

URL的一般格式是 scheme://domain:port/path?query_string#fragment_id

虽然域(以及URL的其他可能部分)可能包含Unicode字符,但在下文中我们假设仅使用ASCII字符.此外,我们假设

  • scheme只包含字母a–zA–Z;
  • domain不包含:,?,#/;
  • port是一个自然数,:port是可选的;
  • path不包含?#,path是可选的;
  • query_string不包含#,?query_string是可选的;
  • fragment_id可以包含任意字符,#fragment_id是可选的.

这是我的代码:

@urls = (
    "http://www.example.com/",
    "http://www80.local.com:80/",
    "https://www.ex221.ac.uk:442/perl/rulez?all+q#all.time");

foreach (@urls) {
    print "URL: $_\n";
    ($scheme,$domain,$port,$path,$query,$fragment) = (/(.)(.)(.)(.)(.)(.)/);
    print "SCHEME: $scheme, DOMAIN: $domain, PORT: $port\n";
    print "PATH: $path\n"; print "QUERY: $query\n";
    print "FRAGMENT: $fragment\n\n";
}
Run Code Online (Sandbox Code Playgroud)

如何更改上面代码中的正则表达式,以便正确分隔URL的五个组件并使用示例URL测试它是否按预期工作.

url perl

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

标签 统计

coroutine ×1

docker ×1

perl ×1

pyspark ×1

python ×1

python-3.x ×1

python-asyncio ×1

url ×1