Windows python的Cygwin路径

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安装中,您可能需要

我可以访问一台安装了最少cygwin的机器,以及Windows版本的python。我需要在那里运行一些python脚本,但是python需要Windows路径。我可以在我提供的参数上使用
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

附言:基于