0

Python ファブリック スクリプトを使用してユーザーを追加しようとしています。

uid = prompt("Enter username:")
eid = prompt("Enter user's email address:")
password = generate_passwd()
run('adduser -g vpn -c %s %s') % (eid, uid)
run("echo -e '%s\n' | passwd %s") % (password, uid)
print (password)

エラー:

File "/tmp/hardway/fabfile.py", line 56, in addvpnuser
    run('adduser -g vpn -c %s %s') % (eid, uid)
TypeError: not all arguments converted during string formatting

私が間違っていることを考えてください。前もって感謝します。

4

1 に答える 1

5

問題は、文字列補間を間違った場所に配置していることです。括弧の外側ではなく、文字列の直後にある必要があります。(ちなみに、これは生地に固有のものではありません。)

そう

run('adduser -g vpn -c %s %s' % (eid, uid))

それ以外の

run('adduser -g vpn -c %s %s') % (eid, uid)

run("echo -e '%s\n' | passwd %s" % (password, uid))

それ以外の

run("echo -e '%s\n' | passwd %s") % (password, uid)
于 2012-09-03T06:01:33.523 に答える