Windows python的Cygwin路径
我可以访问一台安装了最少cygwin的机器,以及Windows版本的python。我需要在那里运行一些python脚本,但是python需要Windows路径。我可以在我提供的参数上使用Windows python的Cygwin路径,python,cygwin,Python,Cygwin,我可以访问一台安装了最少cygwin的机器,以及Windows版本的python。我需要在那里运行一些python脚本,但是python需要Windows路径。我可以在我提供的参数上使用cygpath-w,但是在随后调用的许多其他脚本中包含了更多的unix/cygwin路径 有没有办法告诉Windows python接受unix/cygwin路径?没有,Windows python不支持cygwin路径,但cygwin有自己的python。如果您不能将其添加到现有的CygWin安装中,您可能需要
cygpath-w
,但是在随后调用的许多其他脚本中包含了更多的unix/cygwin路径
有没有办法告诉Windows python接受unix/cygwin路径?没有,Windows python不支持cygwin路径,但cygwin有自己的python。如果您不能将其添加到现有的CygWin安装中,您可能需要考虑将用户特定的CygWin安装到允许写入的目录中。 有一种方法可以为Windows程序获得有限的Cygwin路径支持,尽管我怀疑这也不是您的选择:将Cygwin安装到
C:\
,这样Cygwin/path
就相当于C:\path
。这取决于Windows API(尽管不是所有Windows程序)接受反斜杠和斜杠作为路径分隔符,并且它认为没有驱动器号的绝对路径指的是系统驱动器(即C:
)
显然,这不适用于指向其他驱动器(通过Cygwin装载表)的Cygwin路径。它也不适用于任何使用/
(而不是-
)引入选项的程序,这些选项包括大多数内置的Windows命令行工具。但它通常适用于跨平台工具,如Python
另一种选择是使用MSYS而不是Cygwin,Cygwin是旧Cygwin版本的一个分支,其最显著的特点是在调用Windows程序时自动将POSIX路径转换为Windows路径。然而,请注意,这种方法也有其缺陷,因为并不总是清楚参数是否是路径。因此,有时它将无法转换路径或错误地更改非路径的参数。创建一个名为
wpython
的文件,并将其保存在某个位置,例如在/bin
中:
#!/bin/bash
path=$1
shift # Remove filepath from other args to pass them further
python.exe $(cygpath -w $path) $@ # Call python.exe with Windows path and passed args
那么就这样使用它:
#!/usr/bin/env wpython
print(123)
不要忘记使这两个文件都可以执行:chmod+x filename
附言:基于