gpt4 book ai didi

python - setup.py install 默认使用另一个 site-packages 目录

转载 作者:太空狗 更新时间:2023-10-30 01:11:54 24 4
gpt4 key购买 nike

我在应用程序中嵌入了 Python。当用户通过

安装包或模块时
{...}\myapp\python\python.exe setup.py install

软件包将安装在

{...}\myapp\python\lib\site-packages

有没有可能默认使用另一个目录?

最佳答案

要做到这一点,您需要注意的事情很少。我做了一些研究,这是我发现的:

这部分摘自Python's docs :

After the build command runs (whether you run it explicitly, or the install command does it for you), the work of the install command is relatively simple: all it has to do is copy everything under build/lib (or build/lib.plat) to your chosen installation directory.

If you don’t choose an installation directory—i.e., if you just run setup.py install—then the install command installs to the standard location for third-party Python modules. This location varies by platform and by how you built/installed Python itself.

大多数 Linux 发行版都将 Python 作为系统的标准部分,因此 prefix 和 exec-prefix 在 Linux 上通常都是/usr。如果您在 Linux(或任何类 Unix 系统)上自己构建 Python,则默认前缀和 exec-prefix 是/usr/local。

prefixexec-prefix代表 Python 安装到的目录,以及它在运行时找到其库的位置。

您有一种方法可以交替安装位置,直到某个点:您可以交替基本 目录,但不能交替安装方案

The Distutils install command is designed to make installing module distributions to an alternate location simple and painless. The basic idea is that you supply a base directory for the installation, and the install command picks a set of directories (called an installation scheme) under this base directory in which to install files. The details differ across platforms, so read whichever of the following sections applies to you.

“home scheme”背后的想法是您构建和维护 Python 模块的个人存储。该方案的名称源自 Unix 上“主”目录的概念,因为 Unix 用户将其主目录设置为类似于/usr/或/usr/local/的布局并不罕见。任何人都可以使用此方案,无论他们安装的操作系统是什么。

python setup.py install --home=<dir>

--home选项定义安装基目录。文件安装到安装库下的以下目录如下:

modules home/lib/python
scripts home/bin
data home
C headers home/include/python/distname

然后你需要修改Python's search path以便找到新位置。

您还可以使用定义安装基础的 --prefix 选项 python setup.py install --prefix= .了解更多信息 here


总而言之,您可以更改 home 目录,但站点包层次结构将在其中构建。

关于python - setup.py install 默认使用另一个 site-packages 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46609899/

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