私は PyInstaller の下でPython 2.6を使用しています。これは、MSが作成した、Pythonなので、MSVC8でコンパイルされています。
問題は、マニフェストの埋め込みサポートが pywin32 拡張に依存していることです。これは、 virtualenv (( PyInstallerからアクセスできるように、必要な拡張機能をインストールする方法が見つからないため、ビルド環境では要点が少し損なわれます。
誰かがこの問題の解決策を見つけましたか?
ええと、即興の方法を見つけなければならなかったので。標準のsetup.py
スクリプトを使用してvirtualenv内にインストールされる、pywin32のハッキングされたバージョンでgitリポジトリを内部的に作成しました。正しく機能させるために多くの手間がかかりましたが、なんとかロードして、依存コードが必要に応じて機能するようになりました。これがコミュニティにとって有益であると人々が感じた場合はコメントを投稿してください:十分な数が得られたら、githubアカウントに何かを載せてみます。
次の解決策を提供する http://old.nabble.com/Windows:-virtualenv-and-pywin32--td27658201.html (現在はデッドリンク)が見つかりました。
easy_install http://PATH.TO/EXE/DOWNLOAD
を実行しますこれは、最新バージョンのsetuptoolsで動作します(2014年2月頃、コメントでtovmeodが報告)。
古いバージョンのsetuptoolsを使用している場合(またはそれをsetuptoolsにマージして配布している場合)、次のエラーメッセージが表示されることがあります。
エラー:c:\ users\blah\appdata\local\temp\easy_install-ibkzv7\pywin32-214.win32-py2.6.exeは有効なdistutils Windows .exeではありません
その場合:
easy_install DOWNLOADED_FILE.exe
を実行しますうまくいけば、「easy_install」ではなく「pip install」を試してみましたが、これは機能せず、おそらく機能しません(引用が必要です)。
最後に、私は http://www.mail-archive.com/[email protected]/msg272040.html で解決策を見つけましたが、テストしていません。
これを解決するには、pywin32.pthファイルを私のvirtualenvサイトパッケージにコピーし、パスを指すようにファイルを編集します。
他のオプションがうまくいかない場合、おそらくこれでうまくいくでしょうか?
Python 2.7または3.xの場合、pypiwin32を使用します。
pip install pypiwin32
編集:今のところこれをスクラッチしてください、まだインストールに問題があるようです...
私は全体の状況にかなり飽きて、変換されたホイールのセット( "wheel convert <.exe>")を作成しました。私はそれらを最新のビルドのために維持するように努めますが、何か問題があれば叫んでください。
https://tr00st.co.uk/python/wheel/pywin32/
インストールは、pipを使用して、バージョンとアーキテクチャに一致するパッケージをポイントすることで簡単に実行できます。たとえば、Python 3.5/AMD64の場合:
pipインストール https://tr00st.co.uk/python/wheel/pywin32/pywin32-219-cp35-none-win_AMD64.whl
警告:アンインストール手順自体ではクリーンアップできないため、-upgradeプロセスは現在失敗します(win32api.pydのクリーンアップ時にアクセスが拒否されました)-これは、一時ディレクトリを削除する場合にのみ可能です。手動で削除する。これを回避する最も簡単な方法は、アップグレードの代わりにアンインストールして再インストールし、一時フォルダーを手動で削除することです。
これは、前の回答から改善されている可能性があります。具体的な「ハッキング」なしで、複数のマシンのサンドボックスにpywin32を正常にインストールしたためです。
$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install
次の環境でテスト済み: