Python win32 拡張機能を含む Python をネットワーク ドライブにインストールする
-
22-09-2019 - |
質問
多数の Windows XP マシンで、さまざまなモジュール (その 1 つが python-win32) を備えた同じバージョンの Python を実行しておく必要があります。すべてのクライアントマシンによってマウントされているネットワークドライブにPythonをインストールし、クライアント上のパスを調整することを考えました。Python はネットワークから正常に起動しますが、win32com をインポートすると、次のようなポップアップ エラーが表示されます。
プロシージャ エントリ ポイント ?PyWinObject_AsHANDLE@@YAHPAU_object@@PAPAXH@Z がダイナミック リンク ライブラリ pywintypes24.dll に見つかりませんでした。
メッセージダイアログを閉じた後、コンソールに表示されます。
インポートエラー:DLL のロードに失敗しました:指定されたプロシージャが見つかりませんでした。
python ディレクトリで pywintypes24.dll を検索したところ、「Lib\site-packages\pywin32_system32」に存在しました。
何が足りないのでしょうか? Python + Python-Win32 + 追加モジュールを一度インストールして、それらを多くのマシンで実行できる別の方法はありますか?私は Microsoft システム管理ツールにアクセスできないので、それよりももう少しローテクになる必要があります。
解決
すべてのマシン上では、基本的に一度pywin32_postinstall.py -install
以下を実行する必要があります。すべてのクライアント上で次のコマンドを実行し、ネットワーク上のPythonインストールがN:\Python26
であると仮定します:
N:\Python26\python.exe N:\Python26\Scripts\pywin32_postinstall.py -install
もう一つ重要なことはGood Luck!
です。その理由は、あなたがadmin
としてこれを実行する必要があるかもしれませんということです。私の場合には、そのような設定は、すべてが、1台のコンピュータのために働きました。私はまだ把握しなかった理由ます。
他のヒント
のPython(又は正確に、OSは)のsys.pathを検索することによってはos.environ [ "PATH" を]使用しないDLLを検索します。
あなたがパスに\サーバー\共有\ python26を追加する代わりに、単純な.CMDファイルを使ってPythonを起動することができるようには(\サーバー\共有\ python26 \ libに\サイトパッケージからDLLをコピーした)あなたのインストーラを与えられた(または\)サーバー\共有\ python26 \にpywin32-SYSTEM32ます。
それとも、彼らはのWin32APIなどをインポートしようとする前に、あなたのスクリプトに次のコードを追加することができます:
# Add Python installation directory to the path,
# because on Windows 7 the pywin32 installer fails to copy
# the required DLLs to the %WINDIR%\System32 directory and
# copies them to the Python installation directory instead.
# Fortunately, in Python it is possible to modify the PATH
# before loading the DLLs.
os.environ["PATH"] = sys.prefix + ";" + os.environ.get("PATH")
import win32gui
import win32con
"" " "" "" 私はpywintypes24.dllのためのpythonディレクトリを検索し、それが中に存在している" のLib \のsite-packages \ pywin32_system32。 DLLの存在は問題ではありません。そのDLL内のそのエントリポイントはありますか?
あなたは非ネットワークドライブ上にまったく同じ構成をインストールしようとしたことがありますか?
あなたは、パッケージ内の他のモジュールをインポートしようとしたことがありますか?
あなたは、依存関係ウォーカーまたは類似のものでDLLを確認しましたか?
pywintypes24.dll平均はPython 2.4で "24" をしていますか?あなたは、Pythonのバージョンは何を実行している?
使用できます 起動時に実行されるバッチファイル に
- ネットワーク共有をマウントします (
net use \\server\share
) - Python とパッケージのインストーラーをネットワーク共有からローカル フォルダーにコピーします。
- msi インストーラーのバージョンをインストールされているバージョンと比較して確認します。
- 異なる場合は、Python とすべてのバージョン依存パッケージをアンインストールします
- すべてのパッケージを再インストールする
これは、そのソフトウェアに対する独自の集中管理システムのようなものになります。