LoginSignup
3
4

More than 5 years have passed since last update.

Windows7(64bit)+Python3.4でparamikoを動かしてみた

Last updated at Posted at 2015-01-05

PythonでSFTPクライアントもどき作らないといけないのでそういうライブラリが無いか探してみたところ、paramikoとやらが使いやすくていいらしい。

Python3.4にも対応しているとのことで早速インストール。

> pip install paramiko
...省略...
Successfully installed paramiko ecdsa pycrypto
Cleaning up...
> 

が、無事にインストールが完了したのでとりあえず使ってみようとしたら、import時にエラーが発生。

>>> import paramiko
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\venv\lib\site-packages\paramiko\__init__.py", line 30, in <module>
    from paramiko.transport import SecurityOptions, Transport
  File "C:\venv\lib\site-packages\paramiko\transport.py", line 49, in <module>
    from paramiko.dsskey import DSSKey
  File "C:\venv\lib\site-packages\paramiko\dsskey.py", line 26, in <module>
    from Crypto.PublicKey import DSA
  File "C:\venv\lib\site-packages\Crypto\PublicKey\DSA.py", line 89, in <module>
    from Crypto import Random
  File "C:\venv\lib\site-packages\Crypto\Random\__init__.py", line 28, in <module>
    from Crypto.Random import OSRNG
  File "C:\venv\lib\site-packages\Crypto\Random\OSRNG\__init__.py", line 34, in <module>
    from Crypto.Random.OSRNG.nt import new
  File "C:\venv\lib\site-packages\Crypto\Random\OSRNG\nt.py", line 28, in <module>
    import winrandom
ImportError: No module named 'winrandom'
>>> 

依存ライブラリちゃんと全部入ったはずなのにおかしいな?と思いつつ、winrandomをインストールしようとしたら、何やらエラーでインストールできない。

> pip install winrandom
...省略...
error: Cygwin gcc cannot be used with --compiler=mingw32
> 

どうもCygwinのGCCでコンパイルしようとしてコケてる模様。
64bit Windowsだとダメっぽい。

どこかにコンパイル済みのpycryptoはないものかと探してみたら、ここに置いてあった。
が、Python3.3までしかバイナリが配布されておらず、手元の環境(Windows7 64bit + Python3.4)にインストールしても動かない。

どうにかならないものかと散々探した末、Python3.4対応のバイナリを発見。
easy_installからインストールしてみたところ、無事にimportしてconnectしてsftpでファイルのput/getができた。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4