0

注意:请仔细阅读。这很可能不是重复的!在发布此之前,我已经经历了很多问题。

对于我正在进行的项目,我需要使用 Python 2.7.18。系统上安装的 Python 版本是 2.7.5(我无权在系统级别安装任何东西)。我决定使用configure, make,编译和安装 Python 2.7.18 install,一切都很好。附带说明一下,我使用 , 构建了二进制文件-Wl,-rpath=\$$ORIGIN/../lib,以确保设置了 rpaths 并且不需要更改LD_LIBRARY_PATH即可正确运行二进制文件。

安装后,我可以运行我自己构建的二进制文件,并按预期python --version报告。Python 2.7.18快速ldd显示,这也是libpython2.7.so.1.0我安装的那个。其他一切都很好。

现在我想创建一个虚拟环境,这就是麻烦的地方:

我做了一个virtualenv -p /path/to/my/python2.7 myvenv并且成功创建了虚拟环境。which python指向.../myvenv/bin/python,一切看起来都很好。

然而,python --version现在运行报告Python 2.7.5,事实上,ldd $(which python)显示/lib64/libpython2.7.so.1.0,这不是我想要的。

一种解决方法是相应地设置LD_LIBRARY_PATH我的 Python 安装,但这是我首先试图通过设置正确的 rpath 来避免的。如何告诉虚拟环境按预期使用正确版本的 Python,而不是混淆库?

4

0 回答 0