openstack中的setup.py和setup.cfg的理解

来源:互联网 发布:python程序right方法 编辑:程序博客网 时间:2024/05/19 14:17
import setuptools# In python < 2.7.4, a lazy loading of package `pbr` will break# setuptools if some other modules registered functions in `atexit`.# solution from: http://bugs.python.org/issue15881#msg170215try:    import multiprocessing  # noqaexcept ImportError:    passsetuptools.setup(    setup_requires=['pbr>=1.8'],    pbr=True)


这个是setup.py文件,从中看到只是使用了setuptools这个库

1.setuptools是什么和能做什么

它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况。

2.setuptools怎么使用

http://guoyunsky.iteye.com/blog/1659824,请参考该作者的实例,谢谢作者提供的例子

3.setuptools中的pbr是用来做什么的

setup.py会使用pbr从setup.cfg文件读取参数,执行命令

http://blog.csdn.net/joelovegreen/article/details/46373619,请参考该作者的实例,谢谢作者提供的例子

[entry_points]oslo.config.opts =                                                     #这是表示这是一个命名空间或者一个组    nova = nova.opts:list_opts                                         #nova.opts表示一个包的路径,list_opts表示一个方法    nova.conf = nova.conf.opts:list_opts    nova.api = nova.api.opts:list_opts    nova.cells = nova.cells.opts:list_opts    nova.compute = nova.compute.opts:list_opts    nova.network = nova.network.opts:list_opts    nova.network.neutronv2 = nova.network.neutronv2.api:list_opts    nova.virt = nova.virt.opts:list_opts    nova.cache_utils = nova.cache_utils:list_optsoslo.config.opts.defaults =    nova.api = nova.common.config:set_middleware_defaultsnova.compute.monitors.cpu =    virt_driver = nova.compute.monitors.cpu.virt_driver:Monitornova.compute.resources =nova.image.download.modules =    file = nova.image.download.fileconsole_scripts =                                                            #这是一个命令行的空间或者租    nova-all = nova.cmd.all:main                                                 nova-api = nova.cmd.api:main    nova-api-metadata = nova.cmd.api_metadata:main    nova-api-os-compute = nova.cmd.api_os_compute:main    nova-cells = nova.cmd.cells:main    nova-cert = nova.cmd.cert:main    nova-compute = nova.cmd.compute:main    nova-conductor = nova.cmd.conductor:main    nova-console = nova.cmd.console:main    nova-consoleauth = nova.cmd.consoleauth:main    nova-dhcpbridge = nova.cmd.dhcpbridge:main    nova-idmapshift = nova.cmd.idmapshift:main    nova-manage = nova.cmd.manage:main    nova-network = nova.cmd.network:main    nova-novncproxy = nova.cmd.novncproxy:main    nova-rootwrap = oslo_rootwrap.cmd:main    nova-rootwrap-daemon = oslo_rootwrap.cmd:daemon    nova-scheduler = nova.cmd.scheduler:main    nova-serialproxy = nova.cmd.serialproxy:main    nova-spicehtml5proxy = nova.cmd.spicehtml5proxy:main    nova-xvpvncproxy = nova.cmd.xvpvncproxy:mainnova.api.v21.extensions =    access_ips = nova.api.openstack.compute.access_ips:AccessIPs    admin_actions = nova.api.openstack.compute.admin_actions:AdminActions    admin_password = nova.api.openstack.compute.admin_password:AdminPassword    agents = nova.api.openstack.compute.agents:Agents    aggregates = nova.api.openstack.compute.aggregates:Aggregates    assisted_volume_snapshots = nova.api.openstack.compute.assisted_volume_snapshots:AssistedVolumeSnapshots    attach_interfaces = nova.api.openstack.compute.attach_interfaces:AttachInterfaces    availability_zone = nova.api.openstack.compute.availability_zone:AvailabilityZone    baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes    block_device_mapping = nova.api.openstack.compute.block_device_mapping:BlockDeviceMapping    cells = nova.api.openstack.compute.cells:Cells    certificates = nova.api.openstack.compute.certificates:Certificates    cloudpipe = nova.api.openstack.compute.cloudpipe:Cloudpipe    config_drive = nova.api.openstack.compute.config_drive:ConfigDrive    console_auth_tokens = nova.api.openstack.compute.console_auth_tokens:ConsoleAuthTokens    console_output = nova.api.openstack.compute.console_output:ConsoleOutput    consoles = nova.api.openstack.compute.consoles:Consoles    create_backup = nova.api.openstack.compute.create_backup:CreateBackup    deferred_delete = nova.api.openstack.compute.deferred_delete:DeferredDelete    disk_config = nova.api.openstack.compute.disk_config:DiskConfig    evacuate = nova.api.openstack.compute.evacuate:Evacuate    extended_availability_zone = nova.api.openstack.compute.extended_availability_zone:ExtendedAvailabilityZone    extended_server_attributes = nova.api.openstack.compute.extended_server_attributes:ExtendedServerAttributes    extended_status = nova.api.openstack.compute.extended_status:ExtendedStatus    extended_volumes = nova.api.openstack.compute.extended_volumes:ExtendedVolumes    extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo    fixed_ips = nova.api.openstack.compute.fixed_ips:FixedIps    flavors = nova.api.openstack.compute.flavors:Flavors    flavors_extraspecs = nova.api.openstack.compute.flavors_extraspecs:FlavorsExtraSpecs    flavor_access = nova.api.openstack.compute.flavor_access:FlavorAccess    flavor_rxtx = nova.api.openstack.compute.flavor_rxtx:FlavorRxtx    flavor_manage = nova.api.openstack.compute.flavor_manage:FlavorManage    floating_ip_dns = nova.api.openstack.compute.floating_ip_dns:FloatingIpDns    floating_ip_pools = nova.api.openstack.compute.floating_ip_pools:FloatingIpPools    floating_ips = nova.api.openstack.compute.floating_ips:FloatingIps    floating_ips_bulk = nova.api.openstack.compute.floating_ips_bulk:FloatingIpsBulk    fping = nova.api.openstack.compute.fping:Fping    hide_server_addresses = nova.api.openstack.compute.hide_server_addresses:HideServerAddresses    hosts = nova.api.openstack.compute.hosts:Hosts    hypervisors = nova.api.openstack.compute.hypervisors:Hypervisors    images = nova.api.openstack.compute.images:Images    image_metadata = nova.api.openstack.compute.image_metadata:ImageMetadata    image_size = nova.api.openstack.compute.image_size:ImageSize    instance_actions = nova.api.openstack.compute.instance_actions:InstanceActions    instance_usage_audit_log = nova.api.openstack.compute.instance_usage_audit_log:InstanceUsageAuditLog    ips = nova.api.openstack.compute.ips:IPs    keypairs = nova.api.openstack.compute.keypairs:Keypairs    limits = nova.api.openstack.compute.limits:Limits    lock_server = nova.api.openstack.compute.lock_server:LockServer    migrate_server = nova.api.openstack.compute.migrate_server:MigrateServer    migrations = nova.api.openstack.compute.migrations:Migrations    multinic = nova.api.openstack.compute.multinic:Multinic    multiple_create = nova.api.openstack.compute.multiple_create:MultipleCreate    networks = nova.api.openstack.compute.networks:Networks    networks_associate = nova.api.openstack.compute.networks_associate:NetworksAssociate    pause_server = nova.api.openstack.compute.pause_server:PauseServer# NOTE(cyeoh): this is intentionally disabled until microversions is active.# See https://bugs.launchpad.net/nova/+bug/1426241#    pci = nova.api.openstack.compute.pci:Pci    personality = nova.api.openstack.compute.personality:Personality    preserve_ephemeral_rebuild = nova.api.openstack.compute.preserve_ephemeral_rebuild:PreserveEphemeralRebuild    quota_classes = nova.api.openstack.compute.quota_classes:QuotaClasses    quota_sets = nova.api.openstack.compute.quota_sets:QuotaSets    remote_consoles = nova.api.openstack.compute.remote_consoles:RemoteConsoles    rescue = nova.api.openstack.compute.rescue:Rescue    scheduler_hints = nova.api.openstack.compute.scheduler_hints:SchedulerHints    security_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules    security_groups = nova.api.openstack.compute.security_groups:SecurityGroups    server_diagnostics = nova.api.openstack.compute.server_diagnostics:ServerDiagnostics    server_external_events = nova.api.openstack.compute.server_external_events:ServerExternalEvents    server_metadata = nova.api.openstack.compute.server_metadata:ServerMetadata    server_migrations = nova.api.openstack.compute.server_migrations:ServerMigrations    server_password = nova.api.openstack.compute.server_password:ServerPassword    server_tags = nova.api.openstack.compute.server_tags:ServerTags    server_usage = nova.api.openstack.compute.server_usage:ServerUsage    server_groups = nova.api.openstack.compute.server_groups:ServerGroups    servers = nova.api.openstack.compute.servers:Servers    services = nova.api.openstack.compute.services:Services    shelve = nova.api.openstack.compute.shelve:Shelve    simple_tenant_usage = nova.api.openstack.compute.simple_tenant_usage:SimpleTenantUsage    suspend_server = nova.api.openstack.compute.suspend_server:SuspendServer    tenant_networks = nova.api.openstack.compute.tenant_networks:TenantNetworks    used_limits = nova.api.openstack.compute.used_limits:UsedLimits    user_data = nova.api.openstack.compute.user_data:UserData    versions = nova.api.openstack.compute.versionsV21:Versions    virtual_interfaces = nova.api.openstack.compute.virtual_interfaces:VirtualInterfaces    volumes = nova.api.openstack.compute.volumes:Volumesnova.api.v21.extensions.server.create =    access_ips = nova.api.openstack.compute.access_ips:AccessIPs    availability_zone = nova.api.openstack.compute.availability_zone:AvailabilityZone    block_device_mapping = nova.api.openstack.compute.block_device_mapping:BlockDeviceMapping    block_device_mapping_v1 = nova.api.openstack.compute.block_device_mapping_v1:BlockDeviceMappingV1    config_drive = nova.api.openstack.compute.config_drive:ConfigDrive    disk_config = nova.api.openstack.compute.disk_config:DiskConfig    keypairs_create = nova.api.openstack.compute.keypairs:Keypairs    multiple_create = nova.api.openstack.compute.multiple_create:MultipleCreate    personality = nova.api.openstack.compute.personality:Personality    scheduler_hints = nova.api.openstack.compute.scheduler_hints:SchedulerHints    security_groups = nova.api.openstack.compute.security_groups:SecurityGroups    user_data = nova.api.openstack.compute.user_data:UserDatanova.api.v21.extensions.server.rebuild =    access_ips = nova.api.openstack.compute.access_ips:AccessIPs    disk_config = nova.api.openstack.compute.disk_config:DiskConfig    personality = nova.api.openstack.compute.personality:Personality    preserve_ephemeral_rebuild = nova.api.openstack.compute.preserve_ephemeral_rebuild:PreserveEphemeralRebuildnova.api.v21.extensions.server.update =    access_ips = nova.api.openstack.compute.access_ips:AccessIPs    disk_config = nova.api.openstack.compute.disk_config:DiskConfignova.api.v21.extensions.server.resize =   disk_config = nova.api.openstack.compute.disk_config:DiskConfignova.api.v21.test_extensions =    basic = nova.tests.unit.api.openstack.compute.basic:Basic    microversions = nova.tests.unit.api.openstack.compute.microversions:Microversionsnova.ipv6_backend =    rfc2462 = nova.ipv6.rfc2462    account_identifier = nova.ipv6.account_identifiernova.scheduler.host_manager =    host_manager = nova.scheduler.host_manager:HostManager    ironic_host_manager = nova.scheduler.ironic_host_manager:IronicHostManagernova.scheduler.driver =    filter_scheduler = nova.scheduler.filter_scheduler:FilterScheduler    caching_scheduler = nova.scheduler.caching_scheduler:CachingScheduler    chance_scheduler = nova.scheduler.chance:ChanceScheduler    fake_scheduler = nova.tests.unit.scheduler.fakes:FakeSchedulerentry_point是整个文件中最核心的部分,

0 0