MSVCP90.dll とは
MSVCP90.dll は、マルチスレッド化された動的な Visual Studio 2008 C ランタイム ライブラリです。通常、ターゲット マシンに一致する CRT があることが確実でない限り、アプリケーションは MSVCP90.dll をパッケージ化する必要があります。任意のパッケージ ソフトウェアを使用して、必要な DLL とソフトウェアをパッケージ化し、配布することができます。
MSVCP90.dll の目的
なぜこの奇妙な dll が必要なのか疑問に思われるかもしれません。CRT は Python にとって目新しいものではありません。C に基づくすべてのアプリケーションは、C ライブラリ関数に大きく依存しています。(malloc、strcpy ..) などの標準 C ライブラリ関数のすべての実装は、これらのライブラリに実装されています。さまざまな種類があり、特定のMSDN Web サイトに詳細が記載されています。

MSVCP90.dll の配布
CRT を配布するときは、使用している CRT によって、CRT の名前の末尾に付いているバージョン番号が異なることを理解しておく必要があります。たとえば、MSVCP90.DLL は、Visual Studio 2008 の CRT です。単一のマシンには、アプリケーションのインストール パスのシステム フォルダーに複数の CRT を含めることができます。
アプリケーションのパッケージ化を計画している場合は、アプリケーションが使用する CRT バージョンを再確認する必要があります。間違った CRT をパッケージしたり、使用したりすると、望ましくない未定義の結果が生じる可能性があります。一般的に言えば、Python インストールで使用する CRT は、パッケージ化する CRT と同じにする必要があります。
正しい MSVCRT の決定
さまざまなバージョンのさまざまな CRT ビルドがあるため、どの CRT をパッケージ化する必要があるかを確認するのは困難です。実行中のアプリケーション (実行可能ファイル) がある場合は、dependencywalkerを使用して正しいバージョンを判断できます。任意の DLL を右クリックしてプロパティをクリックすると、この DLL が選択されている場所が表示されます。

アプリケーションをパッケージ化します。
PyInstallerを使用してアプリケーションをパッケージ化できます。これは、DLL をターゲット マシンに取り込むための便利な方法です。