2017-07-31 7 views
2

私はsmall codebase to back up Dropbox Business filesを持っていて、mypyを使用して、まったく不快なDropbox Python SDKの使用に役立てようとしています。mypyが 'Dropbox'モジュールを見つけられません

私はmypyをインストールしており、動作しています。

はしかし、mypyは、次の行のために警告を発生させます:

import dropbox 

警告は「『ドロップボックス』という名前のモジュールが見つかりません」です。

DropboxのSDKジェネレータ(Stoneという)は、generate compatible stub files(この場合はdropbox.pyiと呼ばれます)と思われます。

site-packages/dropboxdropbox.pyiがありません。ここでmypyはそれを探します。

dropboxパッケージのタイプチェックが正常に機能するにはどうすればよいですか?

ありがとうございます。

バージョン:

  • のPython 3.6の64ビット(アナコンダ)
  • OS:Windowsの10のPro 64ビット
  • mypy 0.521
  • のDropboxのSDK 8.0.0

答えて

0

のDropboxのPython SDKは、あなたがそれらを構築する必要があると思いますので、DropboxがPythonのSDKの一部として.pyiファイルを含めると、MYPYPATHを設定しません。SDKのAPIは非常にいくつかの時間のために同じとなっている

# This assumes the following python modules are already installed: six, ply 
git clone [email protected]:dropbox/dropbox-sdk-python.git 
cd dropbox-sdk-python/ 
git submodule init 
git submodule update 
PYTHONPATH=./stone python -m stone.cli python_type_stubs mypy_stubs/dropbox spec/*.stone 
+0

:あなたはDropboxがPythonのSDKからスタブを構築することができますまた

# We first need the Dropbox stone and public stone specs: git clone [email protected]:dropbox/stone.git git clone [email protected]:dropbox/dropbox-api-spec.git # Next we need to install ply (used for running stone) pip install ply # Use stone to build the type stubs PYTHONPATH=stone python -m stone.cli python_type_stubs mypy_stubs/dropbox dropbox-api-spec/*.stone # include __init__.py files touch mypy_stubs/__init__.py mypy_stubs/dropbox/__init__.py # now mypy succeeds when using MYPYPATH to reference new .pyi files MYPYPATH=mypy_stubs mypy project.py 

、:のDropbox APIの仕様から、そうするには

安定しているようだ。 Dropboxの誰かが型付きレポにスタブを追加しない理由はありますか?面倒なことがあれば、スタブを追加しますか? – blokeley

+1

何か特別な理由があるかどうかはわかりませんが、チームに依頼します。 – Greg

+0

ありがとうございました。スタブがtypeshedに追加されていることがわかっている場合は、上記の答えに注意してください – blokeley

1

私はDropbox APIに慣れていませんが、私が得ている印象は、スタブが必要な場合にユーザーが見つけたファイルを実行する責任があるということです。

あなたがそうしたら、あなたは執筆時のように2つのオプション、持っている:

  1. コピーあなたには、いくつかのフォルダに生成され、そのフォルダを指すようにMYPYPATH環境変数を設定スタブを。 (それはおそらくmypyが完全に型指定されていないされているパッケージを解析しようとしたとき、あなたが偽のエラーメッセージの多くを得るだろうので、あなたの全体のsite-packagesフォルダを指すようにMYPYPATHを設定site-packages +でスタブを格納する悪い考えだろう。)

    マイプロジェクト内で生成されたスタブをバージョン管理し、必要に応じてその環境変数を自動的に設定するようにビルドプロセスを設定することをお勧めします。

  2. これらのスタブを含むプルリクエストは、mypyを含むさまざまなタイプチェッカーで使用されるタイプスタブのリポジトリtypeshedに提出してください。スタブを含めるには、まずDropbox APIの開発者から許可を得る必要があります。

    (APIが依然としてアルファ/ベータ版で、変更される可能性が高い場合を除き、おそらくはいと思われます)

関連する問題