小编Dan*_*ure的帖子

如何scp与第二个远程主机

我想知道是否有办法通过remote1主机直接从我的本地机器上通过remote2主机获取SCP文件.

网络仅允许从remote1主机连接到remote2主机.此外,remote1主机和remote2主机都不能scp到我的本地计算机.

是否有类似的东西:

scp user1@remote1:user2@remote2:file .

第一个窗口:ssh remote1然后scp remot2:file ..

第二壳: scp remote1:file .

第一窗口: rm file; logout

我可以写一个脚本来完成所有这些步骤,但如果有直接的方法,我宁愿使用它.

谢谢.

编辑:我正在考虑打开SSH隧道,但我很困惑什么值放在哪里.

目前,要访问remote1,我在$HOME/.ssh/config本地计算机上有以下内容.

Host remote1
   User     user1
   Hostname localhost
   Port     45678
Run Code Online (Sandbox Code Playgroud)

一旦打开remote1,要访问remote2,它是标准的本地DNS和端口22.我应该放置remote1和/或更改localhost什么?

scp

75
推荐指数
4
解决办法
8万
查看次数

如何获取当前运行的模块路径/名称

我搜索过,这似乎是一个简单的问题而没有一个简单的答案.

我有a/b/c.py要调用的文件python -m a.b.c.我想获得a.b.c模块级别的值.


USAGE = u'''\
Usage:
    python -m %s -h
''' % (what_do_i_put_here,)
Run Code Online (Sandbox Code Playgroud)

因此,当我收到-h选项时,我会显示USAGE而不需要在每个脚本中实际记下实际值.

我真的需要通过inspect才能获得所需的价值吗?

谢谢.

编辑:如上所述,有答案(我已经搜索过),但不是简单的答案.使用inspect,使用traceback或操作__file__,__package__并做一些子串来得到答案.但没有什么比我在模块中有一个类的简单,我可以使用myClass.__module__,我会得到我想要的答案.__name__(不幸的是)使用是无用的,因为它总是如此__main__.

此外,这是在python 2.6中,我不能使用任何其他版本.

python python-2.6

30
推荐指数
4
解决办法
4万
查看次数

vim e518:未知选项:

我在unix系统上有一个文本文件.以下文本文件内容会产生问题:

good: ok line
vi: bad line
ok: ok line

所以如果我运行:vim test.txt,我会收到以下错误:

"test.txt" 3L, 39C
Error detected while processing modelines:
line    2:
E518: Unknown option: bad
Press ENTER or type command to continue

如果我删除了我~/.vimrc,则错误消失.但奇怪的是,即使是空~/.vimrc文件,也会出现错误.

我明白这是因为该行以vi:错误创建开始,但我不明白为什么或如何解决这个问题.

vim

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

将EMF/WMF文件转换为PNG/JPG

我收到带有Word docx文档的表单上传.我成功完成了所有解析.然后我必须在网上显示该Word文档.

我现在遇到的问题是我已经嵌入了EMF文件(PIL库识别为WMF格式),我无法想象如何将它们转换为可以在Web上显示的内容(任意选择的PNG).

代码有点简单:

im = PIL.Image.open(StringIO.StringIO(data))
fmt = im.format
if (fmt == 'WMF'):
  fmt = 'PNG'
  output = StringIO.StringIO()
  im.save(output, format=fmt)
  data = output.getvalue()
  output.close()
return '''<img src="data:image/{0};base64,{1}" />'''.format(fmt, base64.encodestring(data))

我得到的错误是:

IOError: cannot find loader for this WMF file
Run Code Online (Sandbox Code Playgroud)

这些Word文档来自普通用户,可能只是从Web上剪切粘贴图像或从文件插入.

在linux系统上有解决方案吗?

谢谢.

编辑:

为了我的辩护,我试图将该文档上传到谷歌驱动器,图像也不显示.也许没有简单的解决方案?

python python-imaging-library

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

django字段/小部件,用于多个值

我真的无法弄清楚如何设法做到这一点.

我想使用django表单来验证以下(未知数量aname):

<input type="hidden" name="aname" value="someJSONdump1"/>
<input type="hidden" name="aname" value="someJSONdump2"/>
<input type="hidden" name="aname" value="someJSONdump3"/>
<input type="hidden" name="aname" value="someJSONdump4"/>
Run Code Online (Sandbox Code Playgroud)

在django方面,我打电话给:

form = myforms.MyForm(request.POST, request.FILES)
if (form.is_valid()):
    # do something
else:
    # redisplay the form
Run Code Online (Sandbox Code Playgroud)

我如何定义MyForm允许我验证每个aname以及错误时窗口小部件重新显示上述内容<input>s

我无法弄清楚如何使用MultiValueField,即使它是正确的使用方法.当你知道你有多少个字段时,这似乎是一个解决方案?

使用clean_aname()形式是没有帮助,因为self.cleaned_data.get('aname')只有最后一个值.

没有表格,我会使用类似的东西request.POST.getlist('aname'),但如果我能用它,我想避免这种情况django.forms.

谢谢你的帮助.


编辑

我离开了,我正在从ModelForm定义更多的字段.我认为这可能会对formset产生一些影响.这就是我所处的位置......这个解决方案被认为是"Django形式"兼容吗?

class MyField(forms.Field):
    widget = MyWidget

    def to_python(self, value):
        if (isinstance(value, basestring)):
            value = [value]
        return [json.loads(v) for v in value]

class MyForm(forms.ModelForm): …
Run Code Online (Sandbox Code Playgroud)

django django-forms

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

babel-istanbul 覆盖从报告中排除文件但保留转译

我的目标是能够在 es6 中编写 src 和测试文件,都在同一个目录中(我希望我的测试文件与我的源文件并排),并获得原始文件的覆盖率报告。

此时我能想到的最好方法是使用以下命令将我的测试文件包含在覆盖率报告中:

./node_modules/.bin/babel-node node_modules/.bin/babel-istanbul \
    cover \
    node_modules/.bin/_mocha -- 'src/**/*.spec.*.js'
Run Code Online (Sandbox Code Playgroud)

我确实尝试使用cover -x 'src/**/*.spec.*.js',它也从转译中排除文件,mocha然后无法运行测试。对于我的生活,我无法弄清楚如何做这样的事情:

./node_modules/.bin/babel-node node_modules/.bin/babel-istanbul \
  cover -x 'src/**/*.spec.*.js' \
  node_modules/.bin/_mocha -- --require babel-core/register 'src/**/*.spec.*.js'
Run Code Online (Sandbox Code Playgroud)

这将正常运行我的所有测试,但会给我带来负面影响:

未收集覆盖信息,不写入覆盖信息退出

所以我离我想要的并不远,我想我只是错过了最后一块,如果有人能在这里提供帮助,我将不胜感激。

问候,D。

code-coverage mocha.js ecmascript-6 istanbul babeljs

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

如何检索原始@classmethod,@ stestmethod或@property

我知道@ decorator.decorator不允许在@staticmethod,@ classmethod(也许还有@property)之上进行装饰.我理解用法:

class A(object):
    @classmethod
    @mydecorator
    def my_method(cls): pass
Run Code Online (Sandbox Code Playgroud)

但是,在调试模块中,我仍然想尝试动态地执行它.所以我想知道从那些描述符(?)中检索原始方法的方法是什么.我读过很少的回复,但我还是很困惑......

我看到一个类的示例,并检索:

class my_class(property):
    def __get__(self, obj, cls):
        return self.fget.__get__(None, cls)
Run Code Online (Sandbox Code Playgroud)

我喜欢装饰的签名保留,但仍然不知道如何做到这一点.我试图实现的逻辑是:

import decorator

def mydecorator(f, *d_args, **d_kwargs):
    if (isinstance(f, classmethod)):
        return classmethod(mydecorator(f.__get__.?WHATELSE?))
    elif (isinstance(f, staticmethod)):
        return staticmethod(mydecorator(f.__get__.?WHATELSE?))
    elif (isinstance(f, property)):
        return property(mydecorator(f.__get__.?WHATELSE?))
    else:
        return decorator.decorator(f)
Run Code Online (Sandbox Code Playgroud)

我试图在Python 2.6中这样做,所以我也欢迎指出@decorator在未来的python版本中被更改(更正?).

谢谢.

python

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