【发布时间】:2011-10-07 13:25:41
【问题描述】:
我想改变 Linux 下 Python 2.7 加载其模块/库的方式。我试图从配置文件中更改它。在那之前是这样的:
BINLIBDEST= $(LIBDIR)/python$(VERSION) LIBDEST= $(SCRIPTDIR)/python$(VERSION) INCLUDEPY= $(INCLUDEDIR)/python$(VERSION) CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION) LIBP= $(LIBDIR)/python$(VERSION)
我试图把它改成这样:
BINLIBDEST= $(LIBDIR) LIBDEST= $(SCRIPTDIR) INCLUDEPY= $(INCLUDEDIR) CONFINCLUDEPY= $(CONFINCLUDEDIR) LIBP= $(LIBDIR)
主要从路径名中删除 python%(VERSION),这样它就可以仅从 lib 文件夹中加载其模块,而不是 lib/python27。但是,即使启动 make 和 make install 可以处理更改,python 或 python27 Python 二进制文件也可以不从新路径加载模块。它回退到这个输出:
Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 'import site' failed; use -v for traceback
是否有办法强制 Python 二进制文件本身(如果必须)从我设置的新路径加载模块,而不是默认路径为 "$(LIBDIR )/python$(版本)"?
【问题讨论】:
-
我不知道你想通过摆脱路径中的 python$(VERSION) 来达到什么目的,但在我看来这是一个糟糕的主意,如果你尝试安装它会变得更糟python3 沿着你的 python2 安装。
-
这可能是真的,但主要想法不是与系统范围的 Python 一起工作,而是拥有一个单独的、更可移植的 Python 版本,以拥有自己的库和模块,而不是,如前所述,影响系统范围的 Python 中的任何东西或触及任何东西。
-
我明白了。无论如何,根据文档:“默认情况下,在 prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion 中搜索库”。所以可能你能做的最好的事情就是改变前缀,而不是后缀。考虑将其安装到
/opt/目录。您可能还必须将$PYTHONHOME变量设置为/opt/,如错误消息中所述。