小编kam*_*mal的帖子

如何以编程方式将多个路径附加到PYTHONPATH

我有4个目录:

/home/user/test1
/home/user/test2
/home/user/test3
/home/user/test4
Run Code Online (Sandbox Code Playgroud)

我有另一个测试目录

/home/user/testing
Run Code Online (Sandbox Code Playgroud)

有文件testall.py

我怎么能将PATT附加到test,test1到test4到PYTHONPATH,以便我可以访问test1到4下的文件.

顺便说一句,test1到4有python文件所在的多个目录.

我试过了:

import sys
import os
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0,os.path.join(PROJECT_ROOT,"test1"))
sys.path.insert(1,os.path.join(PROJECT_ROOT,"test2"))
sys.path.insert(2,os.path.join(PROJECT_ROOT,"test3"))
sys.path.insert(3,os.path.join(PROJECT_ROOT,"test4"))
Run Code Online (Sandbox Code Playgroud)

似乎没有用

也:

import sys
sys.path.append('/home/user/test1','/home/user/test2','/home/user/test3','/home/kahmed/test4')
from test1.common.api import GenericAPI
Run Code Online (Sandbox Code Playgroud)

不工作.

基本上:从test1.common.api导入GenericAPI应该工作

python path pythonpath

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

如何告诉Perl的证明实用程序忽略某些测试?

目前我这样运行prove:

prove -v -r .
Run Code Online (Sandbox Code Playgroud)

有没有办法使用正则表达式排除文件?我无法看到它perldoc prove或输出prove -H.

perl perl-prove

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

如何在同一个ssh会话中执行2个或更多命令?

我有以下脚本:

#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'

Net::SSH.start('host1', 'root', :password => "mypassword1") do |ssh|
    stdout = ""

    ssh.exec("cd /var/example/engines/")
    ssh.exec!( "pwd" ) do |channel, stream, data|
        stdout << data if stream == :stdout
    end
    puts stdout

    ssh.loop
end
Run Code Online (Sandbox Code Playgroud)

我得到了/root,而不是 /var/example/engines/

ruby

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

Ruby,我如何访问do-end循环之外的局部变量

我有一个循环,我在远程机器上执行一系列命令:


   ssh.exec('cd /vmfs/volumes/4c6d95d2-b1923d5d-4dd7-f4ce46baaadc/ghettoVCB;  ./ghettoVCB.sh -f vms_to_backup -d dryrun') do|ch, stream, data|
                                    if #{stream} =~ /vmupgrade/
                                    puts value_hosts + " is " + data
                                    puts #{stream}
                                    puts data
                                    end
                            end
Run Code Online (Sandbox Code Playgroud)

我想访问#{stream}和do-end循环之外的数据

我将不胜感激任何帮助.谢谢,

嗨Jörg,

我实施了你的建议,但现在我收到了错误:


WrapperghettoVCB.rb:49: odd number list for Hash
      communicator = {ch: ch, stream: stream, data: data}
                         ^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '}'
      communicator = {ch: ch, stream: stream, data: data}
                         ^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '='
      communicator = {ch: ch, stream: stream, data: data}
                                     ^ …
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何通过ssh在PHP中执行远程命令?

我试图通过ssh在php脚本中执行远程命令,我希望将命令(stdout和stderr)的输出流式传输到原始主机.

我知道在Perl和Ruby中这是可能的.我在php中找不到任何这样的例子.

码:

$ip = 'kssotest.yakabod.net';
$user = 'tester';
$pass = 'kmoon77';

$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"bash");

$cmd = "echo '[start]';your commands here;echo '[end]'";
$output = user_exec($shell,$cmd);

fclose($shell);

function user_exec($shell,$cmd) {
  fwrite($shell,$cmd . "\n");
  $output = "";
  $start = false;
  $start_time = time();
  $max_time = 2; //time in seconds
  while(((time()-$start_time) < $max_time)) {
    $line = fgets($shell);
    if(!strstr($line,$cmd)) {
      if(preg_match('/\[start\]/',$line)) {
        $start = true;
      }elseif(preg_match('/\[end\]/',$line)) {
        return $output;
      }elseif($start){
        $output[] = $line;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我像这样执行它时$php remote.php …

php ssh

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

如何在python unittest中创建测试套件

我试过了:

def buildTestSuite():
    suite = unittest.TestSuite()
    for testcase in glob.glob('src/testsuite/test_*.py'):
        module = os.path.splitext(testcase)[0]
        print module
        print type(module)
        suite.addTest(__import__(module).buildTestSuite())
    return suite
Run Code Online (Sandbox Code Playgroud)

但我感到很恐怖:

Traceback (most recent call last):
  File "runtests.py", line 63, in ?
    results = main()
  File "runtests.py", line 57, in main
    results = unittest.TextTestRunner().run(buildTestSuite())
  File "runtests.py", line 53, in buildTestSuite
    suite.addTest(__import__(module).buildTestSuite())
AttributeError: 'module' object has no attribute 'buildTestSuite'
Run Code Online (Sandbox Code Playgroud)

python python-unittest

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

我如何设置munin插件multiping

根据插件:

The following environment variables are used

 ping_args  - Arguments to ping (default "-c 2")
 ping_args2 - Arguments after the host name (required for Solaris)
 ping       - Ping program to use
 host       - Host to ping

Configuration example

 [multiping]
  env.host www.example.org mail.example.org
Run Code Online (Sandbox Code Playgroud)

我在哪里指定[multiping]

munin

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

如何绕过Java Web服务客户端中的证书检查

使用案例:有一个Web服务发布为https:// abcd/zz?wsdl

我想要做的是查询这个URI,如果我得到一个VALID WSDL,我返回一个布尔"true"否则为"false".现在,如果我通过Chrome浏览器访问此URL,我将不得不手动接受关于cert警告,然后WSDL被下载.但是如何通过Java/HttpsURLConnection来做到这一点

import java.net.URL;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;

public class JavaHttpsExample
{
  public static void main(String[] args)
  throws Exception
  {
    String httpsURL = "https://a.b.c.d/zz/V2.0/api?wsdl";
    URL myurl = new URL(httpsURL);
    HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
    InputStream ins = con.getInputStream();
    InputStreamReader isr = new InputStreamReader(ins);
    BufferedReader in = new BufferedReader(isr);

    String inputLine;

    while ((inputLine = in.readLine()) != null)
    {
      System.out.println(inputLine);
    }

    in.close();
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

线程"main"中的异常javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:在com.sun.net.ssl.internal.ssl.Alerts.getSSLException中找不到与IP地址abcd匹配的主题备用名称(未知来源) )com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(未知来源)com.sun.net.ssl上的com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(未知来源).在com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(未知来源)的com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(未知来源)的internal.ssl.Handshaker.fatalSE(未知来源) )com.sun.net.ssl.internal.ssl.Handshaker.processLoop(未知来源),位于com.sun.net.ssl的com.sun.net.ssl.internal.ssl.Handshaker.process_record(未知来源). com.sun.net.ssl.internal.ssl.S.SLSLS.Ip.startHandshake(未知来源)com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(未知来源)的internal.ssl.SSLSocketImpl.readRecord(未知来源) )在com.sun.net.ssl .internal.ssl.SSLSocketImpl.startHandshake(未知来源)at sun.net.www.protocol.https.HttpsClient.afterConnect(未知来源)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)at sun位于JavaHttpsExample.main(JavaHttpsExample.java:14)的sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(未知来源)的.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源)引起:java. security.cert.CertificateException:在com.sun.net上的sun.security.util.HostnameChecker.match(未知来源)的sun.security.util.HostnameChecker.matchIP(未知来源)中找不到与IP地址abcd匹配的主题备用名称. com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(未知来源)中的ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(未知来源)

我用abcd取代了真正的IP(当然)

java https wsdl

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

找不到类:运行gradle build时出现javax.annotation和Resource:<java Test Classes>

使用gradle对SonarQube 5.3运行SonarScanner 1.2,我收到如下错误:

Class not found: javax.annotation.Nullable
Class not found: javax.annotation.CheckReturnValue
Class not found: javax.annotation.Nullable
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: javax.annotation.Nullable

and:
Resource not found: a.b.c.d.ControllerTest
and the likes ( all Integration tests ) 
Run Code Online (Sandbox Code Playgroud)

我试过了 :

 dependencies {
      classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2'
      classpath 'javax.annotation:javax.annotation-api:1.2'    }
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用

-Dsonar.java.libraries =**/lib/*也不能用作gradle参数.

使用gradle 2.2.1,使用jdk 7,sonarscanner 1.2和SonarQube 5.3

这是build.gradle:

apply plugin: 'crypto'

buildDir='gradlebuild'

apply from: …
Run Code Online (Sandbox Code Playgroud)

java gradle sonarqube

5
推荐指数
0
解决办法
1367
查看次数

使用 boto3 如何将 vpc 与 ec2 实例相关联

我正在尝试使用 boto3 创建一个 ec2 实例:

#!/usr/bin/env python
import boto3
import json
from collections import defaultdict

ec2 = boto3.resource('ec2', region_name='us-west-1')
print ("Creating instance...")
ec2info = defaultdict()
vpc = ec2.Vpc('vpc-22222222')
instance = ec2.create_instances(
    VpcId='vpc-22222222'
    ImageId='ami-aaaaaaa',
    SubnetId='subnet-99999999',
    KeyName='skahmed-gss',
    SecurityGroupIds=["sg-5555555","sg-9999999"],
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
    #BlockDeviceMappings=[{"DeviceName": "/dev/xvda","Ebs" : { "VolumeSize" : 350 }}]
   BlockDeviceMappings=[
    {
        'DeviceName': '/dev/sda1',
        'Ebs': {
            'VolumeSize': 20,
            'VolumeType': 'gp2'
        }
    }
]
)
print("Instance ID: " + instance[0].id)
ec2.create_tags(Resources = [instance[0].id], Tags = [{'Key': 'Name', 'Value': 'SWALK-CENTOS7'}, {'Key': 'Environment', 'Value': 'NON_PROD'},
 {'Key': …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services boto3

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