ホスト環境の site-packages フォルダーを含めずに、virtualenv で pywin32 を使用するにはどうすればよいですか?
-
11-09-2019 - |
質問
私は一緒に働いています Pyインストーラー Python 2.6 では、MS がマニフェストのナンセンスで作成した混乱のため、部分的にのみサポートされていますが、現在 MSVC8 でコンパイルされているため、Python に影響を及ぼします。
問題は、マニフェストの埋め込みサポートが pywin32 ビルドするために拡張機能を追加する必要がありますが、作成時にホストのサイトパッケージフォルダーを含めないため、面倒です。 仮想環境 (ビルド環境の要点を少し破っています) PyInstaller にアクセスできるように、必要な拡張機能をインストールする方法が見つかりません。
この問題の解決策を見つけた人はいますか?
解決 3
OK、よく私は即興。私は、内部標準setup.py
スクリプトを使用してvirtualenvの中にインストールされますpywin32のハッキング、一緒にバージョンとのgitリポジトリを作成しました。それは正しく動作させるためにいじるの多くを取ったが、私はそれをロードするために得ることができたと私はそれがする必要があるように依存するコードが機能するようになりました。人々は、これがコミュニティに有益であろうと感じた場合はコメントを投稿してください。私は十分に得る場合、私は試してみて、私のgithubのアカウントに何かを入れます。
他のヒント
見つけました http://old.nabble.com/Windows:-virtualenv-and-pywin32--td27658201.html (現在はリンクが切れています)次の解決策を提供しました。
- ブラウズ http://sourceforge.net/projects/pywin32/files/ 必要なexeのURL
- virtualenv をアクティブ化する
- 走る
easy_install http://PATH.TO/EXE/DOWNLOAD
これは、setuptools の最新バージョンで動作します (2014 年 2 月頃、コメントで tovmeod によって報告されました)。
古いバージョンの setuptools を使用している場合 (または、setuptools にマージして再配布した場合)、次のエラー メッセージが表示される場合があります。
エラー:c:\users\blah\appdata\local emp\easy_install-ibkzv7\pywin32-214.win32-py2.6.exe は有効な distutils Windows .exe ではありません
その場合:
- 自分でexeをダウンロードしてください
- virtualenv をアクティブ化する
- 走る
easy_install DOWNLOADED_FILE.exe
私はできれば「easy_install」ではなく「pip install」を試してみましたが、これは機能しませんでしたし、おそらく今後も機能しないでしょう(要出典)。
最後に、解決策を見つけましたが、まだテストしていません http://www.mail-archive.com/python-list@python.org/msg272040.html それは:
Pywin32.pthファイルをVirtualenvサイトパッケージにコピーし、パスを指すようにファイルを編集することにより、これを解決しました。
他のオプションがうまくいかない場合は、おそらくこれでうまくいくでしょうか?
はPython 2.7または3.xを使用するための pypiwin32 のの。
pip install pypiwin32
特定の「ハック」を行わずに、いくつかのマシンのサンドボックスに pywin32 を正常にインストールしたため、これは前の回答から改善されている可能性があります。
$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install
以下の環境でテスト済み:
- ウィンドウズ7
- ギット
- Python 2.7.10とvirtualenv
- VS2008。以下でも動作する可能性があります(ただし、まだテストしていません)。http://www.microsoft.com/en-us/download/details.aspx?id=44266
編集:とりあえずこれをスクラッチしてください。まだインストールに問題があるようです...
私は全体の状況にかなりうんざりし、変換されたホイールのセット (「wheel Convert <.exe>」) を作成しました。最新のビルドに合わせて維持できるように努めますが、何か問題がある場合はお知らせください。
https://tr00st.co.uk/python/wheel/pywin32/
インストールは、pip を使用し、バージョンとアーキテクチャに一致するパッケージを指定することで簡単に行うことができます。たとえば、Python 3.5/amd64 の場合:
ピップインストール https://tr00st.co.uk/python/wheel/pywin32/pywin32-219-cp35-none-win_amd64.whl
警告:--upgrade プロセスは、アンインストール手順自体の後にクリーンアップできないため、現在失敗しています (win32api.pyd のクリーンアップ時にアクセスが拒否されました)。これは一時ディレクトリを削除するときのみであり、手動で削除できます。これを回避する最も簡単な方法は、アップグレードせずにアンインストールして再インストールし、一時フォルダーを手動で削除することです。