小编ato*_*era的帖子

Python socket.error:[Errno 13]权限被拒绝

使用Linux和Python,我想用广播发送一些数据:

d = b'109u433279423423423'    

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.sendto(d, 0, ('192.168.0.255', 9))
Run Code Online (Sandbox Code Playgroud)

我在root下启动此脚本并收到此错误:

s.sendto(d, 0, ('192.168.0.255', 9)) socket.error: [Errno 13]
Permission denied
Run Code Online (Sandbox Code Playgroud)

怎么了?

linux udp datagram python-3.x

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

使用非字符串关键字传递dict以在kwargs中运行

我使用具有签名功能的库f(*args, **kwargs).我需要在kwargs参数中传递python dict,但是dict不包含关键字中的字符串

f(**{1: 2, 3: 4})
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: f() keywords must be strings
Run Code Online (Sandbox Code Playgroud)

如何在不编辑功能的情况下解决这个问题?

python arguments function python-3.x

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

如何将代码对象保存在文件中?

如何在文件中保存代码对象(_ _ code _ _)?

>>> c
<code object foo at 0x022E7660, file "<console>", line 1>
>>> pickle.dump(c, f)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
_pickle.PicklingError: Can't pickle <class 'code'>: attribute lookup builtins.code failed
>>> f.write(c)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: 'code' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

python

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

在python中导入麻烦

想象一下以下项目结构

app/
    foo/
        __init__.py
        a.py
        b.py
Run Code Online (Sandbox Code Playgroud)

a.py我有类至极使用类b.py文件,和从类b.py使用类形式a.py

如果我写:

from foo.b import B 
Run Code Online (Sandbox Code Playgroud)

a.py

from foo.a import A
Run Code Online (Sandbox Code Playgroud)

b.py中,发生递归

如何在不将AB合并到单个文件中的情况下正确导入

python python-3.x

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

无法使用docker-compose运行服务器

我在开发时使用Docker.我注意到我无法使用docker-compose up命令启动dev服务器,但可以使用docker-compose run

这是我的Dockerfile:

FROM python:3.6

WORKDIR /opt/lib
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install -r requirements.txt

WORKDIR /opt/web
Run Code Online (Sandbox Code Playgroud)

这是docker-compose.yaml

version: '2'
services:
  web:
    build: ./web/
    working_dir: /opt/web
    ports:
      - "3000:3000"
    volumes:
      - ./web:/opt/web
    user: 1000:1000
    depends_on:
      - database
    env_file: env
    command: python manage.py runserver 0.0.0.0:3000

  database:
    image: mdillon/postgis:9.6
    ports:
      - "5432:5432"
    volumes:
      - ./database/data:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行docker-compose up,只启动数据库: 在此输入图像描述

但随着docker-compose run服务器启动正常: 在此输入图像描述

如果我将docker-compose.yml> services> web>命令更改为/usr/local/bin/gunicorn project.wsgi:application -w 4 -b :3000它也可以正常工作,但我需要在文件更改时自动重新启动 …

python django docker docker-compose

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

在 Rails 5 中渲染多行字符串的多余空格

我最终遇到了奇怪的错误(功能?):

这是test.html.erb文件的样子:

<textarea><%= "a\nb\nc" %></textarea>
Run Code Online (Sandbox Code Playgroud)

在渲染的 textarea 中,我期待这样的事情:

a
b
c
Run Code Online (Sandbox Code Playgroud)

但我得到了:

在此处输入图片说明 在此处输入图片说明

这些多余的空间从何而来?

Rails 5.0.0.beta2

UDP:我之前应该提到它,但是在form_for块内使用f.text_area 时遇到了同样的问题。看起来像:

.form
  =form_for article do |f|
    .form-group
      =field_label f, :text, true
      =f.text_area :text, class: %w(form-control), rows: 20, placeholder: t('placeholder.article_text')
Run Code Online (Sandbox Code Playgroud)

(HAML)

我最终得到了它,只是将漏洞利用简化为一个字符串的简单erb文件

UDP2: 这里是simple_format 的样子<textarea><%= simple_format("a\nb\nc") %></textarea>

在此处输入图片说明

我应该澄清一些事情:这个 textarea 用于编辑文章文本。然后它(文本)在出现在 html 页面之前将被降价处理器(RDiscount)处理。我不知道为什么我应该使用 simple_format 在 textarea 中显示原始文本以及为什么 在此处输入图片说明 应该变成这个 在此处输入图片说明 保存后?

ruby ruby-on-rails ruby-on-rails-5

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

x = None或object()是否等于显式检查?

我有函数声明,如:

def function(list_of_objects = None)
Run Code Online (Sandbox Code Playgroud)

如果*list_of_objects*没有传递(是None)我需要像空列表一样定义它.明确的方法是:

def function(list_of_objects = None):
    if not list_of_objects:
        list_of_objects = list()
Run Code Online (Sandbox Code Playgroud)

要么

def function(list_of_objects = None):
    list_of_objects = list() if not list_of_objects else list_of_objects
Run Code Online (Sandbox Code Playgroud)

上面的代码是否等于下一个?

def function(list_of_objects = None):
    list_of_objects = list_of_objects or list()
Run Code Online (Sandbox Code Playgroud)

我测试了它,但我仍然不确定

>>> def func(my_list = None):
...     my_list = my_list or list()
...     print(type(my_list), my_list)
... 
>>> func()
(<type 'list'>, [])
>>> func(['hello', 'world'])
(<type 'list'>, ['hello', 'world'])
>>> func(None)
(<type 'list'>, [])
>>> 
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

如何停止渲染页面/部分

我感兴趣的是我可以在模板中间插入模板渲染.例如:

项目/ index.html.haml

%h2 Items

-if @items.empty?
  %h3 There are no items
  /X statement/ 


-@items.each do |item|
  /items rendering/ 
Run Code Online (Sandbox Code Playgroud)

因此,如果没有项目,将显示消息并且页面呈现将被中断,否则将呈现项目列表.我现在唯一能做的就是抛出if-else语句.我试图使用return代替X语句,但似乎它不像我期望的那样工作

haml ruby-on-rails

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

为什么我应该为 ReactJS 创建单独的项目?

我想在我的新 Web 应用程序中使用 React 作为前端,使用 Express 作为后端。

根据指南,我必须在项目目录中使用create-react-app工具创建子项目:

my-project
|-frontend
| |-package.json
| |-components
| | |-...
| | 
| |-...
|
|-backend
| |-api
| | |-...
| |-app.js
| |-...
|
|-package.json
Run Code Online (Sandbox Code Playgroud)

在开发过程中,我应该在不同的端口上启动两个服务器,分别用于后端和前端,并且对后端的代理请求抛出React服务器。

这个计划对我来说看起来很丑陋。如何配置后端服务器以提供与react-scripts相同的功能,以避免使用单独的服务器

node.js reactjs webpack babeljs create-react-app

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

Redis中的原子操作

如何原子地执行这些操作?

def setNickName(nick):
    oldNick = r.get("user:id:1:nick") # r - instance of redis.Redis()
    updated = r.set("user:id:1:nick", nick) if r.hsetnx("user:ref:nick", nick, '1') else False

    if updated and oldNick:
        r.hdel("user:ref:nick", oldNick)
        return True

    return False
Run Code Online (Sandbox Code Playgroud)

python redis

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

Python模拟条件?真假

标准库中是否有python函数

def cond(condition, true, false):
  if condition:
    return true
  return false

x = 20
s = cond(x > 10, "x greater than 10", "x less or equals 10")
Run Code Online (Sandbox Code Playgroud)

python

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