Python包管理的参考资料,可以参考:Pypa,Python Packaging User Guide, Guides, Packaging Namespace packages


需要注意的问题:
1. 包的结构

注意:namespace的名字是subpackage_a,它的父目录的名字是没有关系的,换句话说,与setup.py在同级目录的文件夹才是namespace的名字
2. setup.py里面的内容

from setuptools import setup, find_packages
print("this is setup in namespace package")
setup(
name='subpackage_a_a',
version='1',
description='',
long_description='',
author='Jon Wayne Parrott',
author_email='jonwayne@google.com',
license='Apache Software License',
packages=find_packages(),
zip_safe=False,
)
3. 同级__init__.py里面的内容

__path__ = __import__('pkgutil').extend_path(__path__, __name__)
print("this is __init__ in mynamespace")
4. 在同一个目录下,可以直接调用包,不需要安装

5. 在不同目录下,不能调用包

6. 包安装后,可以在不同目录下调用包

总结:
1. 包的安装不一定是必要的,如果你的代码和包(namespace,表现为文件夹),在同一个目录下,则可以直接进行调用(import your_package);
2. 如果要在任意目录下,被环境中的代码所调用,则需要利用pip进行安装,只需要在setup.py,__init__.py文件中,增加一些安装的信息,最后在setup.py目录下调用“pip install -e .”即可。
这篇博客介绍了Python包管理中的namespace packages概念,强调了包结构的重要性,特别是__init__.py文件和setup.py的配置。内容包括如何在同级目录直接调用包,以及在不同目录下安装和调用包的方法。总结指出,当代码和包在同一目录时,可以直接导入,否则需要通过pip安装。关键词涵盖Python包管理、namespace packages、setup.py和import机制。

436

被折叠的 条评论
为什么被折叠?



