Python如何设置安装目录? 我将Python 3.7嵌入到C++应用程序中,并将自己的Python安装发送到自己的程序中。这是我的应用程序目录(适用于Windows和macOS):

Python如何设置安装目录? 我将Python 3.7嵌入到C++应用程序中,并将自己的Python安装发送到自己的程序中。这是我的应用程序目录(适用于Windows和macOS):,python,python-3.x,Python,Python 3.x,但是,在macOS上,以下命令 $ export PYTHONHOME=/path/to/foo/python37 $ bin/python get-pip.py …在/python37/Lib/python37/site包中安装pip。这意味着Lib/python37中的子文件夹不正确。有人知道为什么会这样吗?PYTHONHOME似乎设置正确(只是第一个/python37),我对这种行为没有解释。答案主要基于python3指南提供的安装参考。 可以使用build和install命令从头开始

但是,在macOS上,以下命令

$ export PYTHONHOME=/path/to/foo/python37
$ bin/python get-pip.py

…在
/python37/Lib/python37/site包中安装
pip
。这意味着
Lib/python37
中的子文件夹不正确。有人知道为什么会这样吗?PYTHONHOME似乎设置正确(只是第一个
/python37
),我对这种行为没有解释。

答案主要基于python3指南提供的安装参考。

可以使用build和install命令从头开始构建Python模块:(也可以使用
Python setup.py install
一次性运行)

现在,我将不集中于构建,而是更多地关注安装。install命令通常将所有
build/lib
文件复制到一个choosen目录中,如果没有选择任何目录,则选择默认目录。位置因平台而异,其中也有一些变体,如Unix(纯版)和Unix(非纯版)。现在,让我们看看以下内容:

Unix (pure)1: /usr/local/lib/pythonX.Y/site-packages   
Unix (non-pure): /usr/local/lib/pythonX.Y/site-packages 
Windows: C:\PythonXY\Lib\site-packages  

现在可以看到,对于Unix平台,默认情况下会添加
/lib/pythonX.Y
。在
python setup.py安装期间指定选项也可以修改此行为(详细信息)我自己还没有尝试过它们。

我们需要更多详细信息。python可执行文件在哪里?模块安装在哪里?你希望它们安装在哪里?明白了,我会在几分钟内更新我的问题。@DanielStephens,你是说在windows中你宁愿看到pip安装在
/path/to/python3.7/Lib/site packages/pip
,但是,在macOs中,它位于
/path/to/python37/Lib/python37/site packages/pip
,带有额外的子目录
Lib/python37
?正确!我不知道额外的python37来自
Lib/
站点包
谢谢!您知道我是否可以为我的环境/应用程序永久设置这些选项吗?我自己还没有尝试过,但阅读文档后,我发现替代安装和自定义安装似乎可以通过正确的构建和安装永久设置所有内容。@DanielStephens如果您觉得这个答案有用,您可以接受它作为答案。
$ export PYTHONHOME=/path/to/foo/python37
$ bin/python get-pip.py
python setup.py build
python setup.py install
Unix (pure)1: /usr/local/lib/pythonX.Y/site-packages   
Unix (non-pure): /usr/local/lib/pythonX.Y/site-packages 
Windows: C:\PythonXY\Lib\site-packages