在网络驱动器上安装python和python win32扩展

时间:2010-02-23 15:49:52

标签: python windows networking share

我需要保留大量运行相同版本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系统管理工具,所以我需要比这更低技术。

4 个答案:

答案 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
  • 将Python和软件包安装程序从网络共享复制到本地文件夹
  • 根据已安装的版本检查msi安装程序的版本
  • 如果不同,请卸载Python和所有依赖于版本的软件包
  • 重新安装所有软件包

这对于该软件来说几乎就是你自己的中央管理系统。