5

我在应用程序中嵌入了 Python。当用户通过安装包或模块时

{...}\myapp\python\python.exe setup.py install

软件包将安装在

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

默认情况下是否有机会使用另一个目录?

4

2 回答 2

3

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

这部分取自Python 的文档

在 build 命令运行后(无论是显式运行,还是 install 命令为您执行),install 命令的工作相对简单:它所要做的就是复制 build/lib(或 build/lib. plat) 到您选择的安装目录。

如果您不选择安装目录(即,如果您只运行 setup.py install),那么 install 命令将安装到第三方 Python 模块的标准位置。此位置因平台以及您构建/安装 Python 本身的方式而异。

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

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

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

Distutils install 命令旨在使将模块分发版安装到备用位置变得简单而轻松。基本思想是您为安装提供一个基本目录,安装命令在该基本目录下选择一组目录(称为安装方案)来安装文件。详细信息因平台而异,因此请阅读以下适用于您的部分。

“家庭方案”背后的想法是您构建和维护 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 的搜索路径才能找到新位置。

您还可以使用定义安装基础的 --prefix 选项 python setup.py install --prefix=在此处阅读有关它的更多信息


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

于 2017-10-15T07:42:36.800 回答
1

要添加新的站点包目录,请将新目录路径添加到路径配置文件中。

路径配置文件将允许您添加一个额外的站点包目录。如果您不想要现有的站点包目录,可以将其从 PYTHON_PATH 中删除。

echo "new_site-package_directory" > your_site_packages_path/usrlocal.pth

于 2017-10-13T11:39:35.503 回答