小编Ale*_*lex的帖子

如何在setup.py中指定显式的python包依赖项?

我想创建一个python包mycode,使用pip(setup.py)安装,它依赖于另一个包base.为了包含这个包依赖,我遵循setup.py指令并在setup 函数中创建了一个条目setup.py:

'requires': ['base']
Run Code Online (Sandbox Code Playgroud)

在我创建了包之后python setup.py sdist,我试图通过pip install成功安装来安装它mycode,但没有任何内容base.似乎requires入口setup.py被忽略了.

出了什么问题?

python pip setup.py python-2.7

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

如何使用'expect'将公钥复制到主机?

我使用以下语法将公钥复制到主机,以便能够在没有密码查询的情况下登录到主机:

ssh-copy-id $hostname 
Run Code Online (Sandbox Code Playgroud)

其中$hostname是具有用户名的系统的主机名,例如root@123.456.789.100.但是,此命令至少需要一个密码查询,有时需要另外一种类型的交互:

The authenticity of host 'xxx (xxx)' can't be established.
RSA key fingerprint is xxx.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

我试图解决我的问题expect,这是我到目前为止(包括所有的意见和建议):

#!/usr/bin/expect
set timeout 9
set hostname     [lindex $argv 0]

spawn ssh-copy-id $hostname 

expect {
  timeout { send_user "\nFailed to get password prompt\n"; exit 1 }
  eof { send_user "\nSSH failure for $hostname\n"; exit 1 }

  "*re you sure you want to continue connecting" {
    send "yes\r" …
Run Code Online (Sandbox Code Playgroud)

ssh tcl expect

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

Android-Studio:"Gradle正在运行.继续关闭Project?"

我是新手,没有经验开发Android(Ubuntu 14.04,Android Studio 1.4).我只是试图解决多个错误来构建我的代码,当我这样做时,我得到一个弹出窗口说

Gradle is running. Proceed with Project closing?
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索这个确切的字符串返回6次点击(其中大多数来自Android开发人员错误跟踪系统).这是一个截图:

在此输入图像描述

我想知道这个消息的含义.当我点击"是"(这不是我想要的)时,它会关闭项目吗?我应该点击这里的按钮?

android android-studio

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

如何修复android错误'颜色值必须以#开头?'

我试图在我的布局中使用此页面中的图标,如下所示

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_backspace_black_24dp"
/>
Run Code Online (Sandbox Code Playgroud)

但由于错误而无法呈现

Color value '@drawable/ic_backspace_black_24dp' must start with #
Run Code Online (Sandbox Code Playgroud)

我在这里这里发现了两个相关的问题,这些问题无助于解决问题.

文件名中没有短划线(' - '),文件格式为'png',res/color项目中没有目录.

所有我定义的颜色都colors.xml以a开头#.

那么如何解决这个错误呢?

android

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

如何使用“预期条件”来检查 python-selenium 中的元素?

我无法理解如何使用“预期条件”来检查元素是否存在。鉴于此文档,根本不清楚如何使用它。我试过下面的代码

 def _kernel_is_idle(self):
    return EC.visibility_of_element_located((By.XPATH, '//*[@id="kernel_indicator_icon" and @title="Kernel Idle"]'))
Run Code Online (Sandbox Code Playgroud)

以检查元素(可作为类中的方法调用)的想法。有两件事没有任何意义:

  1. 根据文档(我必须查找源代码!),此方法应返回TrueFalse。但是,它返回以下内容:

    <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x110321b90>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果没有 ,此功能如何工作webdriver?通常你总是有这样的电话

    driver.do_something()
    
    Run Code Online (Sandbox Code Playgroud)

但是对于“预期条件”,webdriver 的参考在哪里?

python selenium

7
推荐指数
2
解决办法
9684
查看次数

如何使用callables处理python字典?

我想创建一个python目录,其值将单独计算.

因此,例如,在我定义的以下非工作示例中

a = {'key1': 'value1', 'key2': 42, 'key3': foo(20)}
Run Code Online (Sandbox Code Playgroud)

例如

def foo(max):
    """Returns random float between 0 and max."""
    return max*random.random()
Run Code Online (Sandbox Code Playgroud)

在处理dict之后我想要有例如

a_processes = {'key1': 'value1', 'key2': 42, 'key3': 12.238746374}
Run Code Online (Sandbox Code Playgroud)

该示例不起作用,因为key的值key3立即被评估,并且foo(20)不可调用.它的工作方式是使用类似的东西

a = {'key1': 'value1', 'key2': 42, 'key3': foo}
Run Code Online (Sandbox Code Playgroud)

但这里foo会错过它的论点.处理此问题的一种方法是以下列方式定义dict

a = {'key1': 'value1', 'key2': 42, 'key3': [foo, 20]}
Run Code Online (Sandbox Code Playgroud)

使用以下处理方案

a_processed = dict([k,process(v)] for k,v in a.items())
Run Code Online (Sandbox Code Playgroud)

其中process有一个有意义的函数检查它的参数是否是一个列表,或者第一个元素是一个可调用的函数,它被剩余的参数调用.

我的问题是关于实现我的基本想法的更好的方式/想法?

python dictionary

6
推荐指数
2
解决办法
903
查看次数

如何通过字符串访问 pytest 夹具?

pytest固定装置可以通过将其他固定装置作为参数传递来对其他固定装置起作用:

@pytest.fixture(scope='module')
def wrapper_fixture1(fixture1):
    fixture1.do_something()
    return fixture1
Run Code Online (Sandbox Code Playgroud)

现在我有多个不同的装置fixture1,它们fixture2虽然fixture3不同,但具有相似之处(例如名为 的函数do_something()),我想将其应用于每个装置。

但我不想定义三个新的固定装置(如示例中所示),而是想定义一个通用固定装置/函数来创建三个可以传递给测试的固定装置。我在想这样的事情:

def fixture_factory():
    for index in range(3):
        fixture = pytest.get_fixture('fixture%d'%(index+1))
        fixture.do_something()
        pytest.set_fixture('wrapper_fixture%d'%(index+1), fixture, scope='module')
Run Code Online (Sandbox Code Playgroud)

这可以通过某种方式完成吗?或者我是否必须为每个原始灯具编写三个包装器灯具,一遍又一遍地重复相同的代码?

python pytest

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

如何修复"数组类型预期发现java.util.arraylist"?

鉴于以下功能,AndroidStudio在标记的行中给出错误:

array type expected found java.util.arraylist
Run Code Online (Sandbox Code Playgroud)

我也尝试使用get而不是直接引用,但Android Studio告诉我一些setItems无法解决的问题.代码在这里:

protected void multiSelect(final ArrayList items) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("Selection")
            .setItems(items, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    Log.i("Select", "Selected entry: " + items[item]); // error here
                }
            });

    builder.create();
}
Run Code Online (Sandbox Code Playgroud)

java android

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

如何修复docker文件中的“ sh:0:无法打开start.sh”?

我创建了一个包含以下CMD的docker映像:

CMD ["sh", "start.sh"]
Run Code Online (Sandbox Code Playgroud)

当我运行docker镜像时,我在 Makefile

docker run --rm -v ${PWD}:/selenium $(DOCKER_IMAGE)
Run Code Online (Sandbox Code Playgroud)

它将文件从当前(host-)目录复制到docker的/selenium文件夹中。这些文件包括用于硒测试的文件以及文件start.sh。但是在容器启动后,我立即收到错误消息

"sh: 0: Can't open start.sh"
Run Code Online (Sandbox Code Playgroud)

可能在命令运行后将主机卷安装在docker内部吗?还有什么可以解释此错误的信息,以及如何解决该错误?

也许有一种方法可以在docker内部运行多个命令以查看发生了什么事情?喜欢

CMD ["ls", ";", "pwd", ";", "sh", "start.sh"]
Run Code Online (Sandbox Code Playgroud)

更新资料

当我使用以下命令时,我的Dockerfile

CMD ["ls"]
Run Code Online (Sandbox Code Playgroud)

我得到错误

ls: cannot open directory '.': Permission denied
Run Code Online (Sandbox Code Playgroud)

额外的信息

  • Docker版本1.12.6
  • 入口点: WORKDIR /work

shell selenium docker

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

如何避免 selenium webdriver 的套接字超时?

我有一个复杂的 python-selenium 测试套件来测试非公共网页。在该设置中,我需要获取如下所示的 webdriver:

self.driver = webdriver.Firefox(firefox_profile = profile, log_path = logfile)
Run Code Online (Sandbox Code Playgroud)

带有一些配置文件和日志路径。在大多数情况下,这行代码工作正常,但有时(5%或这种情况)我收到套接字超时错误:

File "/root/tests/usecase_tests/tools/basicsuite.py", line 213, in set_driver_firefox
    self.driver = webdriver.Firefox(firefox_profile = profile, log_path = logfile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 158, in __init__
    keep_alive=True)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 309, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 460, in execute
    return self._request(command_info[0], url, body=data)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 484, in _request
    resp = …
Run Code Online (Sandbox Code Playgroud)

python selenium

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