加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-vista – Windows中的OS.symlink支持

发布时间:2020-12-13 20:13:47 所属栏目:Windows 来源:网络整理
导读:我从 python网站下载了 python 2.7.1并安装到windows.当尝试符号链接文件时,我发现它不受支持. 但是,我发现了this issue,看到它是固定的.会否实施,如果是这样的话?我正在运行Windows Vista. 有一种方法来解决这个问题,在你的python环境启动时修补os模块. 创
我从 python网站下载了 python 2.7.1并安装到windows.当尝试符号链接文件时,我发现它不受支持.

但是,我发现了this issue,看到它是固定的.会否实施,如果是这样的话?我正在运行Windows Vista.

有一种方法来解决这个问题,在你的python环境启动时修补os模块.

创建符号链接的功能已经可以从Windows API,您只需要调用它.

在python的启动过程中,尝试在site-packages directory上导入名为sitecustomize.py的模块.我们将使用此钩子将我们的功能附加到os模块.

将此代码放在文件sitecustomize.py上:

import os

__CSL = None
def symlink(source,link_name):
    '''symlink(source,link_name)
       Creates a symbolic link pointing to source named link_name'''
    global __CSL
    if __CSL is None:
        import ctypes
        csl = ctypes.windll.kernel32.CreateSymbolicLinkW
        csl.argtypes = (ctypes.c_wchar_p,ctypes.c_wchar_p,ctypes.c_uint32)
        csl.restype = ctypes.c_ubyte
        __CSL = csl
    flags = 0
    if source is not None and os.path.isdir(source):
        flags = 1
    if __CSL(link_name,source,flags) == 0:
        raise ctypes.WinError()

os.symlink = symlink

您的Python进程需要启用“创建符号链接”权限,这不是Python问题,声称使用此Windows API的每个程序都需要它.这可以从提升的cmd.exe运行您的Python解释器.更好的选择是向用户授予权限,前提是您的Windows版本随附了所需的组策略编辑器(gpedit.msc).请参阅下面的截图.您可以调整该值以包括任何用户或安全组所需的这种特权,而不会影响管理帐户的安全性.

注意:here的代码段

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读