繁体   English   中英

NumPy 的 setup.py 导入它尝试安装的相同 package

[英]NumPy's setup.py imports the same package it is trying to install

看看NumPy 的setup.py ,我注意到在某些时候它包含了 NumPy 的子模块numpy.distutils中的一些内容。

from numpy.distutils.core import numpy_cmdclass

我真的看不出这是如何工作的,因为numpy.distutils - 我认为 - 应该是它试图安装的同一个 package 的一部分。 如果一个 package 依赖于它自己来安装,会不会像? 这背后的工作原理是什么? 为什么这行得通?

我注意到它做了完全相同的事情,但是来自实际上是 package 一部分的文件。 在第二种情况下,使用相对进口不是更好吗?

这只是 Python 的常规导入机制在起作用。 模块搜索路径中的第一个目录是“包含输入脚本的目录”,此处为setup.py 的搜索方式与模块相同。

所以当setup.py执行时,它会在自己的目录中找到numpy文件夹。 该文件夹包含一个名为__init__.py的文件,将其标记为常规 package 然后,模块加载器继续查找子包distutils (已出售,因此不需要已经安装)和模块core.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM