小编Ome*_*gan的帖子

setup.iss文件未生成

我有一个installshiled项目,生成setup.exe文件.我想通过生成正确的setup.iss文件来启用静默安装.我运行了以下命令:

Setup.exe /r
Run Code Online (Sandbox Code Playgroud)

它推出了安装程序,但它从未创建过该setup.iss文件.我查看C:\Windows了文档建议,以及其他一些位置(本地目录,程序文件等)

为什么不创建它以及如何修复?

谢谢,

installshield silent-installer

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

stty:标准输入:使用pdsh或ssh时参数无效

我想从远程机器运行一个简单的脚本.该脚本包含以下内容:

#!/usr/bin/python

import os
print str(os.popen('stty size', 'r').read())
Run Code Online (Sandbox Code Playgroud)

如果我从本地机器运行它我会得到很好的输出,比如36 138.如果我尝试从另一台机器运行它,我得到<ip>: stty: standard input: Invalid argument(使用ssh ot pdsh).

问题是我无法更改使用stty命令的脚本.这是一个常见的脚本,我编写了包装器.建议?

linux ssh bash stty

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

如何从*local bare*repository中克隆克隆

假设我的本地计算机上有一个裸存储库./new-bare.git.将其克隆到我机器上的其他位置的正确方法是什么?

git git-clone git-bare

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

使用--onall时,GNU并行不会在远程服务器上并行运行

我正在尝试在具有多个参数的多个远程服务器上运行脚本。GNU并行命令是:

parallel --onall -S ${RH32},{RH64} /shared/loc/script.sh ::: param1 param2
Run Code Online (Sandbox Code Playgroud)

script.sh:

host=`uname -n`
param=$1
logfile=/shared/loc/log-$host-$param
for i in `seq 1 5`; do
    touch ${logfile}_$i
    sleep 2
done
Run Code Online (Sandbox Code Playgroud)

我正在尝试并行运行4个进程:

  • rh32使用param1运行script.sh
  • rh32使用param2运行script.sh
  • rh64使用param1运行script.sh
  • rh64使用param2运行script.sh

当查看累积的输出时,看起来实际上是这样的:

  • rh32使用param1运行script.sh
  • rh64使用param1运行script.sh

-正在并行运行。完成后,其他两个将并行运行。

如何使所有四个同时并行运行?

谢谢,

parallel-processing gnu-parallel

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

Python:优先级队列不对相同优先级元素保持顺序

我正在使用python的Queue.PriorityQueue,并遇到以下问题:当将几个具有相同优先级的元素插入队列时,我希望队列按插入顺序(FIFO)为它们提供服务。由于某些原因,情况并非如此:

>>> from Queue import PriorityQueue
>>>
>>> j1 = (1, 'job1')
>>> j2 = (1, 'job2')
>>> j3 = (1, 'job3')
>>> j4 = (1, 'job4')
>>> 
>>> q = PriorityQueue()
>>> q.put(j1)
>>> q.put(j2)
>>> q.put(j3)
>>> q.put(j4)
>>> q.queue
[(1, 'job1'), (1, 'job2'), (1, 'job3'), (1, 'job4')]
>>> q.get()
(1, 'job1')
>>> q.queue
[(1, 'job2'), (1, 'job4'), (1, 'job3')]
Run Code Online (Sandbox Code Playgroud)

从示例中可以看出,顺序是1之后混合的get()。什么原因?如何克服(保持相同的Prio元素的顺序)?

编辑

我被要求添加一个示例,该示例显示q.get()实际上弄乱了FIFO的顺序,因此这是一个精心制作的示例:

class Job(object):
    def __init__(self, type_, **data): …
Run Code Online (Sandbox Code Playgroud)

python priority-queue

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

要检查bash脚本是以root用户身份还是以普通用户身份运行?

我已经开始学习bash脚本了.我有一个概念上的疑问,如何确定脚本是以root身份还是以普通用户身份运行.

如果用户为0,我知道UID,但我不明白如何实现它.任何人都可以解释我如何使它工作.是否可以"Not a root user"像以普通用户一样运行脚本时打印消息?

我的脚本很简单hello_world.sh:

#!/bin/bash
echo 'Hello World';
Run Code Online (Sandbox Code Playgroud)

bash scripting

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

python性能-函数与生成器函数

我想知道哪个在性能方面更好:带状态的“常规” python函数或生成器。与类似的问题不同,我使用最简化的函数来隔离问题:

常规功能:

 >>> def counter_reg():
         if not hasattr(count_regular,"c"):
             count_regular.c = -1
         count_regular.c +=1
         return count_regular.c
Run Code Online (Sandbox Code Playgroud)

发电机功能:

>>> def counter_gen():
    c = 0
    while True:
        yield c
        c += 1

>>> counter = counter_gen()
>>> counter = counter.next
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,调用counter()counter_reg()将产生相同的输出。

在性能方面哪个更好?谢谢,

python performance

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

GNU并行更改PATH环境变量

我正在尝试使用GNU Parallel来在远程计算机上运行带有多个参数的脚本.这看起来有点像:

parallel --onall -S remote-machine  /shared/location/script.sh ::: param_a param_b
Run Code Online (Sandbox Code Playgroud)

/shared/location/script.sh正在使用git.所以我得到这个错误:

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

如果我登录remote-machine手动和运行/shared/location/script.sh使用param_aparam_b一切工作正常.所以我检查了$ PATH变量并发现如果我remote-machine使用GNU parallel 运行一些东西,它看起来像PATH=/usr/bin:/bin:/usr/sbin:/sbin.如果我直接从机器上运行它也是/local/bin/git.

为什么会这样,如何克服?

提前致谢

parallel-processing gnu environment-variables gnu-parallel

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

当列表名称未修复时,bash获取列表长度

假设我有两个列表:

lista="a b c d"
listb="e f"
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数来返回给定列表中的项数:

>>foo $lista
4
>>foo $listb
2
Run Code Online (Sandbox Code Playgroud)

我尝试过使用${#<varname>[@]}语法,但也${#!<varname>[@]}没有成功.

谢谢

bash

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

获取 Youtube 频道的视频列表作为 rss feed

如何使用 youtube api 形成请求以从频道获取视频作为 rss feed?

我读了这个问题,其中给出了新 api (V3) 的链接,但我在那里找不到它。我尝试使用 api v2 中已弃用的语法:

https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Run Code Online (Sandbox Code Playgroud)

但它只是有时有效。

我也尝试过:

https://www.googleapis.com/youtube/v3/search?key={your_key_here}&channelId={channel_id_here}&part=snippet,id&order=date&maxResults=20
Run Code Online (Sandbox Code Playgroud)

我在其中输入频道 ID 和搜索键,但收到“错误请求”错误。

youtube rss youtube-api

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

str.startswith的高阶函数用法

我有一个文件,希望清除其中的注释行。我想通过functools.partial类似于以下方式的操作进行操作

from functools import partial

f = open(filetoread, "r")
lines = f.readlines()
f.close()

# Filtering the comment lines
f_func = partial(str.startswith, prefix="#")
lines = filter(f_func, lines)
Run Code Online (Sandbox Code Playgroud)

这是行不通的,显然是因为它str.startswith是一个类方法。什么是使用正确的方式functools.partial使用str.startswith,因此将工作?

python higher-order-functions functools

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

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

如何将格式化的字符串回显到变量中

我正在尝试在变量中累积格式化的字符串.类似的东西:

for i in 1 2 3; do
    a="${a} `printf "%-10s %s" "hello" "world"`"
done
Run Code Online (Sandbox Code Playgroud)

但是,当我回显输出时,它不会保留格式,即使我使用-e-n标记以及echo命令.我该怎么办?

谢谢

bash

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