这是一个两管齐下的问题......问题的上下文是获得一个很好的 Python 3.1.1 构建以用于构建和运行 mod_wsgi。有关为什么共享库是个好主意的更多信息,请参阅此文档。
使用 --enable-shared 构建 Python 的后果是什么?
我观察到当我在没有 --enable-shared 的情况下构建它时,python 二进制文件是 ~ 16MB
-rwxr-xr-x 2 root root 1638104 Aug 17 12:29 python3.1
Run Code Online (Sandbox Code Playgroud)
使用 --enable-shared,python 二进制文件为 15K。
-rwxr-xr-x 2 root root 15860 Oct 5 22:34 python3.1
Run Code Online (Sandbox Code Playgroud)
一般来说,这对python的“正常”操作有什么影响?所有脚本仍会运行相同吗?任何性能影响?您是否可以,或者是否希望同时拥有(共享和静态)?
关于如何干净地解决这个错误的任何想法?
注意:建立在干净的 RHEL 5.3 64 位安装上。
使用 构建 Python 3.1.1 后./configure --enable-shared,出现此错误:
[root@test ~]# python3
python3: error while loading shared libraries:
libpython3.1.so.1.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我通过放置这个符号链接解决了它:
/usr/lib64/libpython3.1.so.1.0 -> /usr/local/lib/libpython3.1.so.1.0
Run Code Online (Sandbox Code Playgroud)
这似乎很骇人听闻......是否可以传递 ./configure 选项来解决这个问题?
——
谢谢!
小智 8
这可能是 superuser.com 的一个,但好吧,我会咬一口。
使用 --enable-shared 构建 Python 的后果是什么?
你会得到一个二进制文件,它使用动态加载器来链接它需要的库,没有错。当您的二进制文件所依赖的任何库更新时,该二进制文件的下一次调用将受益于下一次构建。
一般来说,这对python的“正常”操作有什么影响?
没有。
所有脚本仍会运行相同吗?
是的。
任何性能影响?
如果快速生成 python 进程是你唯一关心的问题,静态链接会快一点。
您是否可以,或者是否希望同时拥有(共享和静态)?
当然可以,但是动态二进制文件很好,除非您知道需要它,否则不需要任何静态二进制文件。
关于如何干净地解决这个错误的任何想法?
编辑/etc/ld.so.conf,在自己的一行添加“/usr/local/lib”,运行ldconfig
是否有 ./configure 选项可以传递来解决这个问题?
只是猜测... --prefix=/usr
| 归档时间: |
|
| 查看次数: |
9439 次 |
| 最近记录: |