传输Python模块

2024-06-17 15:46:54 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,对于这种情况,我使用的是pythonv2.6中的winreg模块,但是我必须使用的Python包是v2.5。当我尝试使用:

_winreg.ExpandEnvironmentStrings

它抱怨此模块中没有此属性。我已经成功地从站点包文件夹中转移了其他模块,比如comtypes。在

但问题是我不知道要复制/替换哪些文件。有办法吗?站点包也是第三方模块的主要位置吗?在


Tags: 模块文件文件夹属性站点情况办法winreg
1条回答
网友
1楼 · 发布于 2024-06-17 15:46:54

它是一个编译的C扩展,不是纯Python,因此通常不能简单地将DLL/so文件从一个安装复制到另一个安装:Python二进制接口在0.1版本号更新时发生变化(但不是0.0.1更新)。在任何情况下,_winreg似乎是静态内置的Python.exe在当前的正式Windows版本中,而不是被放入“dll”文件夹中。在

_winreg.ExpandEnvironmentStrings在2.6之前是不可用的,但是您可以回到^{},这或多或少起到相同的作用。(它还支持$VAR变量,在Windows下可能不需要,但这可能不是一个实际问题。)您是对的:%-Windows下expandvars的语法是在2.6中才引入的,真没用。看来你需要下面的东西。在

如果最坏的情况发生在最坏的情况下,用手写很简单:

import re, os

def expandEnvironmentStrings(s):
    r= re.compile('%([^%]+)%')
    return r.sub(lambda m: os.environ.get(m.group(1), m.group(0)), s)

尽管不管怎样,Python2.x总是会担心无法读取Unicode环境变量。在

相关问题 更多 >