我目前正在使用 cmake ,在这个过程中我发现了一些我不明白的事情,主要是关于usr/bin
目录中的 python 符号链接:
在我的
usr/bin
目录中存在符号链接,几乎包含它们指向的 python 可执行文件的名称。它们创建以来似乎已经有一段时间了,我想知道是否有必要这样做的原因,或者如果在某个时候出现问题,我应该删除这些符号链接。符号链接指向什么
x86_64-linux-gnu-python<x.x>-config*
?python3.5
这更多是一个Python特定问题:和之间有什么区别python3.5m
?
我的usr/bin
看起来像这样:
lrwxrwxrwx 1 root root 9 Okt 18 2016 python -> python2.7*
lrwxrwxrwx 1 root root 9 Okt 18 2016 python2 -> python2.7*
-rwxr-xr-x 1 root root 3546104 Nov 19 10:35 python2.7*
lrwxrwxrwx 1 root root 33 Nov 19 10:35 python2.7-config -> x86_64-linux-gnu-python2.7-config*
lrwxrwxrwx 1 root root 16 Dez 10 2015 python2-config -> python2.7-config*
lrwxrwxrwx 1 root root 9 Okt 18 2016 python3 -> python3.5*
-rwxr-xr-x 2 root root 4460336 Nov 17 20:23 python3.5*
lrwxrwxrwx 1 root root 33 Nov 17 20:23 python3.5-config -> x86_64-linux-gnu-python3.5-config*
-rwxr-xr-x 2 root root 4460336 Nov 17 20:23 python3.5m*
lrwxrwxrwx 1 root root 34 Nov 17 20:23 python3.5m-config -> x86_64-linux-gnu-python3.5m-config*
lrwxrwxrwx 1 root root 16 Mär 23 2016 python3-config -> python3.5-config*
lrwxrwxrwx 1 root root 10 Okt 18 2016 python3m -> python3.5m*
lrwxrwxrwx 1 root root 17 Mär 23 2016 python3m-config -> python3.5m-config*
lrwxrwxrwx 1 root root 16 Dez 10 2015 python-config -> python2.7-config*
答案1
关于python3.5m,它是默认的python。
正如邮件列表中所示:https://mail.python.org/pipermail/python-list/2016-June/710983.html
“m”后缀意味着 Python 配置为“--with-pymalloc”,即使用专门的 malloc,包括小对象分配器。这是默认配置。您还可能会看到配置为“--with-pydebug”和“--with-pymalloc”的构建的“dm”后缀。
libpython3.5.so 和 libpython3.5m.so 实际上可能链接到同一个共享库:
$ readlink libpython3.5.so ../../x86_64-linux-gnu/libpython3.5m.so.1 $ readlink libpython3.5m.so ../../x86_64-linux-gnu/libpython3.5m.so.1
关于链接,它们看起来很正常,只是移动名称和位置以向用户提供标准环境;从链接中可以看出默认的 python 是 2.7,而 python 3 链接到 3.5