我正在创建一个Python 2.7脚本来自动化用于Windows和Linux(Ubuntu)系统的环境设置,最好是使用vanilla Python。
我无法让Python在Windows上创建符号链接(我确信它在Linux上更简单),并且根据其他Stack Overflow问题的方法,我还没有能够让这个工作。
我的第一种方法是在一个非常简单的方法中使用os.symlink
def createSymlink(source, dest):
os.symlink(source,dest)
但这会返回错误:
AttributeError: 'module' object has no attribute 'symlink'
经过更多搜索后,我尝试了另一种基于this答案的方法,但我收到了类似的错误。
File "C:/Workspace/PythonProjects/ciim-architect/main.py", line 94, in createSymlink
os.symlink = symlink_ms(source, dest)
File "C:/Workspace/PythonProjects/ciim-architect/main.py", line 86, in symlink_ms
csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_unit32)
AttributeError: 'module' object has no attribute 'c_unit32'
此方法的代码如下,_OS == 'Windows'
为True。
def createSymlink(source, dest):
if _OS == 'Windows':
def symlink_ms(source, dest):
import ctypes
csl = ctypes.windll.kernel32.CreateSymbolicLinkW
csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_unit32)
csl.restype = ctypes.c_ubyte
flags = 1 if os.path.isdir(source) else 0
try:
if csl(dest, source.replace('/', '\\'), flags) == 0:
raise ctypes.WinError()
except:
pass
os.symlink = symlink_ms(source, dest)
我对Python很陌生,所以我可能会认为这完全错了,但是有没有办法在不吸引第三方库的情况下实现这一点?