4

初めて Windows に Python アプリをデプロイしています (Apache & mod_wsgi/Flask/Sqlalchemy)。

pyodbc を使用して、Sqlalchemy が mssql と通信できるようにしたいと考えています。

pyodbc のバイナリ ビルドを問題なくインストールできました。コマンド ラインから使用すると動作します。ただし、mod_wsgi はヒット時にインポート エラーをログに記録しています。import pyodbc

pyodbc issue tracker のこのスレッドは、私の問題を正確に説明しており、Windows マニフェストに関係しているようです。ただし、mt.exe を使用して解決する方法がわかりません。

PowerShell の場合:

C:\my\site-packages> C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\mt.exe 
-inputresource:c:\Windows\SysWOW64\python27.dll;#2 -manifest 
-outputresource:pyodbc.pyd#2'

mt.exe : command line error c10100a9: Some operation on the input manifests must
be specified (even if it is just to pipe the input to the output).
Use the /? option for help on usage and samples.`

コマンドで:

C:\my\site-packages>"C:\Program Files\Microsoft SDKs"\Windows\v7.1\Bin\mt.exe 
-inputresource:C:\Windows\SysWOW64\python27.dll#2 -outputresource:pyodbc.pyd#2

mt.exe : general error c101008c: Failed to read the manifest from the resource 
of file "C:\Windows\SysWOW64\python27.dll#2". The system cannot find the file 
specified.

私は何を間違っていますか?!

4

2 に答える 2

2

私は pyodbc issue tracker のスレッドの作成者です。

ファイル「C:\Windows\SysWOW64\python27.dll」が存在しないように見えます。2.7以外のバージョンをお持ちですか?

それ以外の場合は、python の公式 Windows パッケージがインストールされていることを確認し、そのバージョンで pyodbc のインポートが成功することを確認してください。存在する場合は、python インストール ルートまたは他の場所から、ローカルの python.dll (例: python27.dll) へのパスを置き換えることができるはずです。

于 2012-05-17T17:34:10.187 に答える
0

うーん、これは恥ずかしいことです。セミコロンがいくつか欠けているようです。ただし、少なくとも数回コマンドを適切に実行することはわかっているので、構文の間違いに気付く前に、変更した他のことをリストします。

  • すべてが 32 ビットであることを 3 重に確認
  • Visual Studio C++ 2008 Express をダウンロードしました (以前は再配布可能な VC++ 2008 を実行していたので、別のバージョンの mt.exe が作成されました)。
  • 名前に「2010」と「C++」が含まれるものをすべてアンインストールしました
  • cmd でコマンドを実行しました。何らかの理由で、PowerShell ではまったく機能しません。

pyodbc メーリング リストでの非常に詳細で役立つ投稿について、Alfred に再度感謝します。

于 2012-05-17T20:27:41.237 に答える