小编Ben*_*ari的帖子

如何通过docker cp复制目录?

我想将目录从主机复制到容器,但无法使用以下命令:

$ docker cp -r <a-dir> <a-container-ID>:/destination/path
unknown shorthand flag: 'r' in -r
Run Code Online (Sandbox Code Playgroud)

使用scp -rshell 命令我可以做到,所以我也期待docker cp -r

如何在不使用 make compress .tar 文件及其提取物的情况下克服它?

shell ubuntu docker docker-copy

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

使用备用事件循环而不设置全局策略

我使用的是uvloopwebsockets作为

import uvloop
coro = websockets.serve(handler, host, port)  # creates new server
loop = uvloop.new_event_loop()
loop.create_task(coro)
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

一切正常,我只是想知道如果不将全局asyncio政策设置为,是否可以遇到一些意想不到的问题uvloop。据我了解,只要不使用全局asyncio方法,只要不使用全局方法,就可以设置全局策略,而直接使用传递的事件循环。那是对的吗?

python-asyncio uvloop

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

为什么在Pool中使用了2个以上的进程后没有影响?

通过使用map函数multiprocessing库中当使用 2 个以上的进程时,我看不到执行时间的差异。我正在使用 4 个内核运行程序。

实际代码非常简单,计算前 4000 个斐波那契数 4 次(= 内核数量)。它在 N 个内核之间平均分配工作(例如,当使用具有 2 个进程的池时,每个进程将计算前 4000 个斐波那契数次)。整个过程是在 N = 1 到核心数量的情况下完成的。

输出,每一行的核心数量和相应的执行时间(以秒为单位)是:

  1. 3,147
  2. 1,72
  3. 1,896
  4. 1.899

有谁知道为什么在超过 2 个内核的情况下执行时间没有减少?实际代码是:

import multiprocessing
from time import time


def F(_):
    for n in range(4 * 10 ** 3):
        a, b = 0, 1
        for i in range(0, n):
            a, b = b, a + b
    return


def pool_fib():
    n_cores = multiprocessing.cpu_count()
    args = list(range(multiprocessing.cpu_count()))
    for i in range(1, n_cores …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-multiprocessing

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

16 位二进制转换

我找到了几种将 Integer 和 Float 值转换为二进制的方法,它们各有各的问题。我需要在 0 和 10,000 的值之间输入一个整数/浮点数,转换为16 位(精确)二进制字符串,随机操作这些位,然后转换回整数/浮点数(取决于参数)。

但是,我一直在使用以下代码:

def convert_to_binary(value):
    '''
    Converts a float to a 16-bit binary string.
    '''
    [d] = struct.unpack('>Q', struct.pack('>d', value))
    return str('{:016b}'.format(d))

def convert_back(bin_num):
    ''' 
    Converts binary string to a float. 
    '''
    print type(bin_num) 
        print bin_num
    bf = int_to_bytes(int(bin_num, 2), 8)  # 8 bytes needed for IEEE 754 binary64.
        print struct.unpack('>d', bf)[0]
    return struct.unpack('>d', bf)[0]

#   return struct.unpack('d', struct.pack('Q', bin_num))[0]
    #bin_num.pack('B*').unpack('g').first

def int_to_bytes(n, minlen=0):  # Helper function
    ''' …
Run Code Online (Sandbox Code Playgroud)

python floating-point binary

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

运行 WSGI 应用程序时出错,ModuleNotFoundError:没有名为“mysite”的模块

我正在尝试使用 pythonanywhere 通过项目部署我的 Django 项目,但我遇到了问题并且真的陷入了困境。谁能帮我解决这个问题。图像附加到我的setting.py 文件的路径。settings.py 的路径

Webttab上的WSGI.py配置是:

path = '/home/technewsandblog/blog/blog_project/mysite'
if path not in sys.path:
sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

# then:

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)

我重新加载后显示的错误是:

Error running WSGI application
2018-07-08 20:30:23,383: ModuleNotFoundError: No module named 'mysite'

2018-07-08 20:30:23,383:   File "/var/www/technewsandblog_pythonanywhere_com_wsgi.py", line 18, in <module>

2018-07-08 20:30:23,383:     application = get_wsgi_application()

2018-07-08 20:30:23,384: 
2018-07-08 20:30:23,384:   File "/home/technewsandblog/.virtualenvs/myDjangoEnv/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application

2018-07-08 20:30:23,384:     django.setup(set_prefix=False)

2018-07-08 20:30:23,384: 
2018-07-08 20:30:23,384:   File "/home/technewsandblog/.virtualenvs/myDjangoEnv/lib/python3.6/site-packages/django/__init__.py", line 19, in setup

2018-07-08 …
Run Code Online (Sandbox Code Playgroud)

python django pythonanywhere

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

如何在Alpine Linux容器上安装pyzmq?

我有一个带有python:3.6-alpine内核的容器,我在用pip安装pyzmq时遇到问题:

Dockerfile:

FROM python:3.6-alpine

RUN mkdir /code
RUN apk add vim
WORKDIR /
ADD . /code
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: '3'

services:
  battery_monitoring:
      build: .
      image: bm:1.0.0
      container_name: battery_monitoring
      restart: unless-stopped
      volumes:
        - .:/code
      tty: true
Run Code Online (Sandbox Code Playgroud)

当我在此容器上安装几个Python库时,我没有任何问题,但是在pyzmq库中,出现错误:

程序:

$ docker-compose build
$ docker-compose up -d
$ docker exec -it <This-container-ID> sh
Run Code Online (Sandbox Code Playgroud)

在容器中:

pip install pyserial
pip install easydict
Run Code Online (Sandbox Code Playgroud)

上面的命令也安装了,但是在pyzmq安装中,我遇到了以下错误:

pip install pyzmq
Run Code Online (Sandbox Code Playgroud)

结果的一部分:

    ----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-545my4q5/pyzmq/setup.py';f=getattr(tokenize, 'open', …
Run Code Online (Sandbox Code Playgroud)

pip python-3.x pyzmq docker alpine-linux

3
推荐指数
2
解决办法
2565
查看次数

如何在Grafana Docker容器中拥有root权限?

我有一个Grafana Docker容器,当我在此容器上创建交互式shell时,该用户不是超级用户,因此我无法执行需要sudo许可的操作:

docker exec -it grafana_service bash
Run Code Online (Sandbox Code Playgroud)

在此容器中:

$ su
password:
Run Code Online (Sandbox Code Playgroud)

我没有密码!

或者我不能使用from chmod 777对文件系统等进行完全许可。


这是我的码头工人组成:

version: '3'

services:
  grafana_sevice:
      image: grafana/grafana:5.1.3
      container_name: grafana_service
      restart: unless-stopped
      ports:
        - "3010:3000"
      links:
        - another_service
Run Code Online (Sandbox Code Playgroud)

docker grafana docker-compose

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

TypeError:必须为整数(类型为元组)

我正在尝试为人脸识别项目或程序设置检测器,但始终出现此错误:

TypeError: an integer is required (got type tuple)
Run Code Online (Sandbox Code Playgroud)

我也尝试过更改:

cv2.putText(img, str(id), (x, y + h), font, 255)

cv2.putText(img, name, (x, y + h), font, 2, (0, 255, 0), 2)

这是我的代码:

import cv2
import numpy as np

faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cam=cv2.VideoCapture(0)

rec = cv2.face.LBPHFaceRecognizer_create()
rec.read("trainer/training_data.yml")
id=0
font=(cv2.FONT_HERSHEY_SIMPLEX,1,1,0,1)

while(True):
    ret,img=cam.read()
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    faces=faceDetect.detectMultiScale(gray,1.3,5)
    for(x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
        id,conf=rec.predict(gray[y:y+h,x:x+w])
        cv2.putText(img,str(id),(x,y+h),font,255)
    cv2.imshow("FACEDETECTIONPT1",img)
    if(cv2.waitKey(1)==ord('q')):
        break
cam.release()
cv2.destroyAllWindows
Run Code Online (Sandbox Code Playgroud)

opencv python-3.7

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

如何使用__pycache__文件夹运行Python项目?

我想使用Python编译(.pyc__pycache__)运行一个Pythonic项目。为了在Python2中做到这一点,我没有任何问题。


这是Python2项目中的简化示例:


现在,我想在Python3项目中重试此行为。

这是一个简化的asyncio(在Python3中可用)项目:

python cpython compilation pyc python-3.x

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

如何从C访问asyncio/uvloop循环

我是python的新手,但是有一个使用uvloop的异步python应用程序,它使用我创建的C api模块,它也需要访问异步循环.

1)asyncio还没有这个c-api?任何在C中使用事件循环的hack?这是在哪里讨论?

2)uvloop使用我在C中熟悉的libuv.如果我可以抓取uv_loop_t指针,我可以挂钩循环.我想我可以:

A)使用PyObject*到uvloop的循环计算uv_loop_t*的偏移并使用它?假设我知道PyObject_HEAD的长度?

libuv_loop = (uv_loop_t*)((void*)(loop)+0x8);

struct __pyx_obj_6uvloop_4loop_Loop {
    PyObject_HEAD
    uv_loop_t *uvloop;
Run Code Online (Sandbox Code Playgroud)

B)或非hacky修改uvloop以暴露循环指针.因为我从来没有看过cython代码,所以我完全无能为力.我可以在循环上创建一个python函数,从我的C代码调用它并获取C指针吗?喜欢:

(uv_loop_t*)PyObject_CallFunctionObjArgs( getLoop, NULL )
Run Code Online (Sandbox Code Playgroud)

通过在这里添加getLoop:

https://github.com/MagicStack/uvloop/blob/master/uvloop/loop.pyx

cdef uv.uv_loop_t* _getLoop(self):
    return self.uvloop
Run Code Online (Sandbox Code Playgroud)

cython c-api python-asyncio uvloop

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