94263


google colaboratoryでPythonを使っています。`pip install`
などの外部ライブラリから引用するコマンドが使えません。pip自体に「"pip" is not
defined」というエラー出るので、pipのバージョンの問題ではないと思います。

Python初心者なので、提示する情報が足りていないかもしれませんが答えていただけると幸いです。よろしくお願いします。

### エラー

[code]

    File "<ipython-input-1-b0bfe1142762>", line 2
        pip install pycryptodome
            ^
    SyntaxError: invalid syntax
    
[/code]

### コード

[code]

    pip install pycryptodome
    from Crypto.Util import number
    
    def elgamal_gen_key(bits):
        while True:
            q = number.getPrime(bits-1)
            p = 2*q + 1
            if number.isPrime(p):
                break
    
        while True:
            g = number.getRandomRange(3, p)
            if pow(g, 2, p) == 1:
                continue
            if pow(g, q, p) == 1:
                continue
            break
        x = number.getRandomRange(2, p-1)
        y = pow(g, x, p)
        return (p, g, y), x
    def elgamal_encrypt(m, pk):
        p, g, y = pk
        assert(0 <= m < p)
        r = number.getRandomRange(2, p-1)
        c1 = pow(g, r, p)
        c2 = (m * pow(y, r, p)) % p
        return (c1, c2)
    def elgamal_decrypt(c, pk, sk):
        p, g, y = pk
        c1, c2 = c
        return (c2 * pow(c1, p - 1 - sk, p)) % p
    
    pk, sk = elgamal_gen_key(bits=20)
    print('pk:', pk) 
    print('sk:', sk) 
    print()
    
    m = 314159 # 平文
    print('m:', m)
    c = elgamal_encrypt(m, pk) # 暗号化
    print('c:', c)
    d = elgamal_decrypt(c, pk, sk) # 復号
    print('d:', d)
    
[/code]


CC BY-SA 4.0
2023-03-19T14:49:28.847
94247
2023-03-22T01:50:27.077
2023-03-22T01:50:27.077
3060
57597
question
python google-colaboratory pip
Google Colab で pip install が使用できない


原因は`pip install pycryptodome`の行と、それ以後の行を同じセルに入力しているからですね。

`pip install pycryptodome`だけを単独のセルに入力して、`from Crypto.Util import
number`以後の内容を次のセルに分けて入力し、順番に実行すれば問題無く動作します。

なお一応、`pip install pycryptodome`の行は、頭に`!`を入れて`!pip install
pycryptodome`としておきましょう。


CC BY-SA 4.0
2023-03-21T10:21:41.140
94263
2023-03-21T10:21:41.140
26370
94247
answer