我需要保留大量运行相同版本python的Windows XP计算机,其中包含各种模块,其中一个是python-win32。我想在所有客户端计算机上安装的网络驱动器上安装python,只需调整客户端上的路径。 Python从网络启动很好,但是当导入win32com时,我遇到一个弹出错误:
程序入口点?PyWinObject_AsHANDLE @@ YAHPAU_object @@ PAPAXH @ Z无法找到动态链接库pywintypes24.dll
解除消息对话框后,我进入控制台:
ImportError:DLL加载失败:找不到指定的过程。
我在python目录中搜索了pywintypes24.dll,它出现在“Lib \ site-packages \ pywin32_system32”中。
我缺少什么,是否有另一种方法可以安装Python + Python-Win32 +附加模块并让它们在许多机器上运行?我无法访问Microsoft系统管理工具,所以我需要比这更低技术。
答案 0 :(得分:7)
在每台机器上,您必须在pywin32_postinstall.py -install
之后基本上运行一次。假设您在网络上安装python是N:\Python26
,请在每个客户端上运行以下命令:
N:\Python26\python.exe N:\Python26\Scripts\pywin32_postinstall.py -install
另一个重要的事情是Good Luck!
。原因是您可能需要以admin
执行此操作。在我的情况下,这样的设置适用于除一台计算机以外我还是没弄清楚原因。
答案 1 :(得分:1)
Python(或者说,操作系统)使用os.environ [“PATH”]搜索DLL,而不是搜索sys.path。
所以你可以使用一个简单的.cmd文件来启动Python,它将\ server \ share \ python26添加到路径中(给定安装程序(或者你)从\ server \ share \ python26 \ lib \ site-packages复制DLL \ pywin32-system32到\ server \ share \ python26)。
或者,您可以在尝试导入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
答案 2 :(得分:0)
“”“我在python目录中搜索了pywintypes24.dll,它出现在”Lib \ site-packages \ pywin32_system32“”“”中。 dll的存在不是问题。那个dll中的入口点是什么?
您是否尝试在非网络驱动器上安装完全相同的配置?
您是否尝试过导入包中的其他模块?
您是否使用依赖性walker或类似的东西检查了dll?
pywintypes24.dll中的“24”是否意味着Python 2.4?你在运行什么版本的Python?
答案 3 :(得分:0)
您可以使用batch files running at boot
net use \\server\share
)这对于该软件来说几乎就是你自己的中央管理系统。