我试图安装PyQt4,这样我就可以摆弄它了。安装指南说我必须安装Sip。安装Sip的最后一步是使用make install命令。Windows没有,所以我查了一下,我看到的所有东西都说要安装Cygwin。于是我照做了。但是…在C:\Python31\sip中。
我可以从Cygwin命令运行这个吗?如果是,我该怎么做呢?
或者我可以从正常的windows命令提示符运行这个?如果是,我该怎么做呢?
我试图安装PyQt4,这样我就可以摆弄它了。安装指南说我必须安装Sip。安装Sip的最后一步是使用make install命令。Windows没有,所以我查了一下,我看到的所有东西都说要安装Cygwin。于是我照做了。但是…在C:\Python31\sip中。
我可以从Cygwin命令运行这个吗?如果是,我该怎么做呢?
或者我可以从正常的windows命令提示符运行这个?如果是,我该怎么做呢?
你已经接受了一个答案,但我只是想提一下,以下也适用于Cygwin:
cd "C:\Foo"
我认为cd /cygdrive/c方法更好,但有时知道您也可以这样做是有用的。
我会添加一些东西,帮助我在cygwin很多。每当建立一个新系统时,我总是这样做
ln -s /cygdrive/c /c
这将创建到/cygdrive/c的符号链接,其中包含一个名为/c的新文件(在主目录中)
然后你可以在壳内做这个
cd /c/Foo
cd /c/
非常方便。
另外,你可能还会喜欢:
shopt -s autocd
这允许您通过键入dir来cd目录
[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$
要使它持久,你应该将它添加到~/.bashrc中
你可能会经常这样做,在你的.bashrc文件中添加别名,比如:
alias cdc='cd /cygdrive/c'
alias cdp='cd /cygdrive/p'
然后你可以在命令行输入:
cdc
在HOME文件夹中创建一个名为“overridebashcdforwindowspths”的文件。将以下代码粘贴到文件中并保存:
#!/bin/bash
function cd() {
CD_PATH="$(history | tail -1 | sed -e "s,.*${FUNCNAME[0]}\s*,,g")"
if [ -z "${CD_PATH}" -o "${CD_PATH}" = "~" ]; then
CD_PATH="${HOME}"
fi
builtin cd "$(cygpath "$CD_PATH")"
}
接下来,在终端中键入以下命令,而你在你的HOME文件夹中:
echo ". overrideBashCdForWindowsPaths" >> .bashrc
关闭你的终端并打开一个新的终端。现在,您只需简单地键入即可轻松地更改到该Windows文件夹
cd C:\Python31\sip
脚本读取最后一个命令,提取路径并将其传递给Cygwin的路径转换工具。通过将函数命名为“cd”,我们在某种程度上“覆盖”了Bash内置的“cd”,并在最后一行中将实际调用委托给它。
这里值得一提的是,Cygwin的cygpath仍然不能正确处理间隔的Windows路径,特别是在Cygwin下运行的Bash脚本中。诀窍在于理解Cygwin如何在Bash脚本中解释引号。
以下选项无效:
#!/bin/bash
TBDIR="/cygdrive/c/Program\ Files\ \(x86\)/MyDir/"
if [ -d "${TBDIR}" ]; then
echo "Found MyDir directory at: ${TBDIR}"
cd "$TBDIR"
else
echo "MyDir program directory not found!"
echo "Wrong DIR path: ${TBDIR}"
exit 1
fi
但这确实有效:
#!/bin/bash
# Cygwin-ism: No quotes!
TBDIR=/cygdrive/c/Program\ Files\ \(x86\)/MyDir/
if [ -d "${TBDIR}" ]; then
...
据我所知,目前还没有已知的使用cygpath的解决方案,可以在bash脚本上下文中正确处理空格,但您可以在脚本中使用引号。
我喜欢的是:cd C:
想要拥有linux的感觉然后做:
ln -s /cygdrive/c/folder ~/folder
然后像这样使用:~/folder/..