小编Bar*_*cki的帖子

在 CI 中使用来自 gitlab Registry 的图像

你能告诉我我是否以正确的方式做:

  • 我已经创建了 Docker 映像,其中包含在 gitlab CI 中运行测试所需的所有内容
  • 我把它推送到 gitlab 注册表
  • 我可以在 gitlab 页面的 Registry my image - gitlablogin/projectname部分看到
  • 我想将此图像用于 CI,因此在 .gitlab-ci.yml 中添加图像:gitlablogin/projectname

之前我有 .gitlab-ci.yml

same_task:
  stage: deploy
  image: python:3
  script:
    - python -V
Run Code Online (Sandbox Code Playgroud)

我现在有:

pep8:
  stage: deploy
  image: gitlablogin/projectname
  script:
    - python -V
Run Code Online (Sandbox Code Playgroud)

在此更改作业失败后:

Running with gitlab-runner 11.4.2 (cf91d5e1)
  on docker-auto-scale 72989761
Using Docker executor with image gitlablogin/projectname ...
Pulling docker image gitlablogin/projectname ...
ERROR: Job failed: Error response from daemon: pull access denied for gitlablogin/projectname, repository does …
Run Code Online (Sandbox Code Playgroud)

gitlab docker

7
推荐指数
3
解决办法
4313
查看次数

只允许名称参数的函数

我在Python Cookbooks中阅读了一个解决方案,用于创建仅允许名称参数的函数.我编写了自己的代码来试试:

class Reporter(object):
    def __init__(self, *, testline=None, sw_ver= None, directory=None):
        pass

if __name__ == "__main__"
    r = Reporter()
Run Code Online (Sandbox Code Playgroud)

但是解释器显示此错误:

File "Reporter.py", line 6
    def __init__(self, *, testline=None, sw_ver= None, directory=None):
                        ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

为什么会显示这个?

python arguments function cookbook python-2.7

5
推荐指数
3
解决办法
1878
查看次数

如何将服务器作为 py.test 的夹具运行

我想用服务器作为夹具编写 Selenium 测试:

import pytest

@pytest.fixture()
def driver(request):
    from selenium import webdriver
    d = webdriver.Firefox()
    request.addfinalizer(d.close)
    return d

@pytest.fixture()
def server():
    from server import run
    run(host="localhost", port=8080)

def test_can_see_echo(driver,server):
    page = TestPage(driver)
    page.fill_text_in_input("test")
    page.click_send()
    print page.get_returnet_value()
Run Code Online (Sandbox Code Playgroud)

在服务器夹具中运行的函数是瓶子运行函数。问题是,当我调用 run() 程序时,程序进入无限循环并且不执行测试主体。我应该在同一个线程中调用 run 吗?我的设计好吗?将来我想使用服务器装置来集成到服务器状态。例如,使用 Selenium 进行测试“添加评论”,最后使用服务器装置询问服务器是否真的发生了此操作。

python fixtures pytest bottle

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

框架argparse - 检查是否设置了标志

我想以这种方式使用我的脚本:python script.py -x现在我使用这个命令运行它python script.py -xy

我的代码:

parser = ArgumentParser()
parser.add_argument('-x', '--x', dest="x", default="n")
options = parser.parse_args()
if option.x == 'y':
    f()
Run Code Online (Sandbox Code Playgroud)

可以用这种方式编写它

python script.py -x

parser = ArgumentParser()
parser.add_argument('-x', '--x', dest="x")
options = parser.parse_args()
if isset(option.x):
    f()
Run Code Online (Sandbox Code Playgroud)

python python-2.7 argparse

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

我怎样才能注释f(*params)?

我无法弄清楚如何正确地注释这段代码:

from typing import Iterable

def f(*params: Iterable) -> str:
    return ":".join(params)
Run Code Online (Sandbox Code Playgroud)

我知道这Iterable是不正确的,因为mypy告诉我:

error: Argument 1 to "join" of "str" has incompatible type Tuple[Iterable[Any], ...]; expected Iterable[str]
Run Code Online (Sandbox Code Playgroud)

......但我不明白为什么.

python typing argument-unpacking python-3.x python-3.6

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

获取文件的md5而不保存在光盘上

我正在使用枕头编辑图像,编辑后我使用方法保存并在保存的文件上下一次计数md5.保存文件需要0.012秒,对我来说太长了.有没有办法在Image对象上计算md5而不保存到文件?

python md5 pillow

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

通过paramiko加载ssh .bashrc

我想通过ssh(putty)自动执行相同的操作。使用腻子连接后,我的计算机.bashrc已加载(因此我可以使用别名)。如果我尝试在Python中执行此操作,则别名sanity是不可见的:

sanity: command not found
Run Code Online (Sandbox Code Playgroud)

使用source .bashrc不是解决方案。

 ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('xxxxxxx', username='x',   password='x',  key_filename=None, look_for_keys=False)
    stdin, stdout, stderr = ssh.exec_command(
    """
    sanity;
    """)

    stdout.flush()
    for line in stdout:
        print line
    print "END"

    print stderr.read()
    ssh.close()
Run Code Online (Sandbox Code Playgroud)

python bash paramiko

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

冗余git服务器

拥有第二个 git 服务器是否可能并且是一个好主意吗?我想要这样的东西:

  1. 用户在他的主机上进行 git push/git pull/任何需要远程的操作
  2. 服务器如果主服务器正在工作,一切都会按标准方式进行,如果
  3. 主服务器宕机了 git switch 做第二个服务器

重要的是第二服务器应与主服务器同步。

git

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