我在应用程序中嵌入了 Python。当用户通过安装包或模块时
{...}\myapp\python\python.exe setup.py install
软件包将安装在
{...}\myapp\python\lib\site-packages
默认情况下是否有机会使用另一个目录?
我在应用程序中嵌入了 Python。当用户通过安装包或模块时
{...}\myapp\python\python.exe setup.py install
软件包将安装在
{...}\myapp\python\lib\site-packages
默认情况下是否有机会使用另一个目录?
为了做到这一点,您需要注意的事项很少。我做了一些研究,这就是我发现的:
这部分取自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。
prefix
并exec-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=
。在此处阅读有关它的更多信息
总而言之,您可以更改主目录,但将在其中构建站点包层次结构。
要添加新的站点包目录,请将新目录路径添加到路径配置文件中。
路径配置文件将允许您添加一个额外的站点包目录。如果您不想要现有的站点包目录,可以将其从 PYTHON_PATH 中删除。
echo "new_site-package_directory" > your_site_packages_path/usrlocal.pth