gpt4 book ai didi

python - 在 Linux 中为 Python 使用不同的 LIBDIR 路径

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:24 30 4
gpt4 key购买 nike

我想改变 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/python27 中加载它的模块,而是仅从 lib 文件夹中加载它的模块。但是,即使启动 ma​​kema​​ke install 可以处理更改,pythonpython27 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$(VERSION)"?

最佳答案

您必须对 python 源代码进行一些更改并重新编译,但我假设这没问题,因为这是一件非常不标准的事情。

查看文件 Modules/getpath.c。 python 执行以确定 libdir 的步骤在文件开头的注释中有详细说明。你可以看看 svn repo here .我想你会想看看这个定义是如何使用的:

#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"

我认为这不会像将其更改为 [...] PREFIX "/lib/:"[...] 那样简单,但它会是那些行。

关于python - 在 Linux 中为 Python 使用不同的 LIBDIR 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6731281/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com