pywin32 バインディングを使用していくつかの Excel スプレッドシートを編集するプログラムのインストーラーを作成しようとしています。py2exe を使用して実行可能ファイルを作成しましたが、デスクトップ上のフォルダーから実行可能ファイルを実行するとすべてが機能します。ただし、プログラムを C:\Program Files\ または任意のシステムの同等のフォルダーにインストールする単一のインストーラー ファイルを配布できるようにしたいと考えています。私もこれに成功しましたが、pywin32 バインディングを使用すると、作業ディレクトリがどこにあっても一時ファイルが作成されます。
新しいバージョンの Windows では、管理者のみがこれらのディレクトリへの書き込み権限を持つようになっているため、これは非常に問題があります。このため、これらのディレクトリからアプリを実行すると、次のエラーで失敗します。
WindowsError: [Error 5] Access is denied: 'C:\\Program Files (x86)\\DataPlotter\\.\\win32com\\gen_py\
\00020813-0000-0000-C000-000000000046x0x1x6'
管理者権限で実行するようにアプリを変更することは、脆弱性をもたらす可能性があるため、悪い解決策です。
この問題の修正や、pywin32 バインディングが一時ファイルの場所として使用する場所を変更する方法を知っている人はいますか?