Я всегда думал, что $HOME
и ~
были точно такими же и, следовательно, могли
использоваться взаимозаменяемо. Сегодня, когда я попытался установить pylibmc, python
привязка к memcached, на моем общем сервере использование ~
дало мне ошибку, но не
$HOME
. Я хотел бы объяснить, почему.
libmemcached - это требование для pylibmc. У меня установлен libmemcached под моим домашним каталогом, потому что у меня нет корня на сервере. В результате install pylibmc, мне нужно убедиться, что установка script знает, где Найти libmemcached.
При выполнении python setup.py install --with-libmemcached=~
установка
script работает
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
, script запускает
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
без проблем. Похоже, проблема в том, что тильда не решена. Но почему?