安装 scikit-learn 时就地构建扩展有什么好处?
What's the advantage of building extensions inplace when installing scikit-learn?
我正在尝试安装 scikit-learn 的开发版本。这是 document:
中关于它的声明
If you run the development version, it is cumbersome to reinstall the package each time you update the sources. It is thus preferred that you add the scikit-learn directory to your PYTHONPATH
and build the extension in place:
python setup.py build_ext --inplace
我不太明白这条指令。据我所知, --inplace
选项是将构建的文件放入与纯 python 模块相同的目录中。它与避免重新安装有什么关系?
假设您在 scikit-learn 目录中有 scikit-learn 发行版
git clone https://github.com/scikit-learn/scikit-learn.git
cd scikit-learn
您对重新安装的引用意味着当您 运行:
python setup.py install
安装脚本构建 pyx 文件,运行s 测试并将所有文件复制到 OS 的某个系统文件夹中。假设您想修复 scikit-learn 包中的一些错误,或添加新功能。你会怎么做? scikit-learn 中的项目对安装脚本安装到某个位置的文件没有任何影响,因此如果您更改 scikit-learn 文件夹中的这些文件并从终端导入 sklearn - 您将导入未更改的文件(因为您导入文件不是来自那个 scikit-learn 目录,而是来自某些 OS 目录)。
如果你想用最近修改过的源代码导入 sklearn - 你可以通过 3 种方式实现:
运行 python setup.py install
每次修改scikit-learn库文件后,但是很繁琐
修改 OS 目录(安装 scikit-learn 的目录)中的库文件,但它通常需要管理员权限,如果你破坏它 - 你破坏了可能使用的库通过您系统中的其他脚本。
按照您在问题中提到的那样就地构建它,然后您可以进入 scikit-learn 源文件夹和 运行 import sklearn
,它将从当前导入库文件夹,以及您所做的任何修改。 (但是如果没有 运行ning build_ext --inplace
之前你不能做这样的导入)
我正在尝试安装 scikit-learn 的开发版本。这是 document:
中关于它的声明If you run the development version, it is cumbersome to reinstall the package each time you update the sources. It is thus preferred that you add the scikit-learn directory to your
PYTHONPATH
and build the extension in place:
python setup.py build_ext --inplace
我不太明白这条指令。据我所知, --inplace
选项是将构建的文件放入与纯 python 模块相同的目录中。它与避免重新安装有什么关系?
假设您在 scikit-learn 目录中有 scikit-learn 发行版
git clone https://github.com/scikit-learn/scikit-learn.git
cd scikit-learn
您对重新安装的引用意味着当您 运行:
python setup.py install
安装脚本构建 pyx 文件,运行s 测试并将所有文件复制到 OS 的某个系统文件夹中。假设您想修复 scikit-learn 包中的一些错误,或添加新功能。你会怎么做? scikit-learn 中的项目对安装脚本安装到某个位置的文件没有任何影响,因此如果您更改 scikit-learn 文件夹中的这些文件并从终端导入 sklearn - 您将导入未更改的文件(因为您导入文件不是来自那个 scikit-learn 目录,而是来自某些 OS 目录)。
如果你想用最近修改过的源代码导入 sklearn - 你可以通过 3 种方式实现:
运行
python setup.py install
每次修改scikit-learn库文件后,但是很繁琐修改 OS 目录(安装 scikit-learn 的目录)中的库文件,但它通常需要管理员权限,如果你破坏它 - 你破坏了可能使用的库通过您系统中的其他脚本。
按照您在问题中提到的那样就地构建它,然后您可以进入 scikit-learn 源文件夹和 运行
import sklearn
,它将从当前导入库文件夹,以及您所做的任何修改。 (但是如果没有 运行ningbuild_ext --inplace
之前你不能做这样的导入)