我一直以为$HOME
和~
是完全一样的,因此 可以互换使用。今天,当我试图安装pylibmc,python 绑定到memcached时,在我的共享服务器上使用~
给我错误,但不是 $HOME
。我想解释为什么。
libmemcached是pylibmc的要求。我有libmemcached在我的主目录下安装了 ,因为我在服务器上没有root。因此,我需要确保安装脚本知道在哪里找到libmemcached。
执行python setup.py install --with-libmemcached=~
时,安装 脚本运行
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I~/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
这给出了libmemcached不能被发现的错误。
如果我更改为--with-libmemcached=$HOME
,脚本运行
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/home/waterbotte/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
没有任何问题。看起来问题在于代字号没有得到解决。但为什么?
我认为代字号是命令行的便利。在脚本中,总是应该使用'$ HOME'。 – 2012-07-20 21:52:40