当前位置: 首页 > news >正文

python install package_python install package作为另一个包的子包

我正在使用eclipse / pydev在python 2.7中开发一个程序(“homie”),它包含几个外部API提供程序的接口。那些继承了位于__init__.py内homie.interfaces内的genric Interface-Class

现在,所有这些接口都应包含在homie.interfaces的子包中,例如homie.interfaces.foo和homie.interfaces.bar。

遵循分而治之的概念,我为每个接口实现创建了新项目,包含相应的包,例如foo,分别为bar。

问题是,我的setup.py脚本在安装过程中当然找不到包myprogram.interfaces.foo。

示例:worknet接口

#! /usr/bin/env python

from distutils.core import setup

setup(

name='Worknet-DBs Interface',

version='0.1-indev',

author='Richard Neumann',

author_email='mail@richard-neumann.de',

packages=['homie.interfaces.worknet'],

data_files=[],

license=open('LICENSE.txt').read(),

description='Interface implementation for the Worknet APIs',

long_description=open('README.txt').read(),

)

将产生:

[neumannr@neumann-homeinfo worknet.tmp]$ python ./setup.py install

running install

running build

running build_py

error: package directory 'homie/interfaces/worknet' does not exist

[neumannr@neumann-homeinfo worknet.tmp]$

如果我只指定worknet而不是homie.interfaces.worknet,它当然会安装到homie.interfaces的用户基础实例中。

如何告诉脚本将worknet包安装到homie.interfaces,其路径为homie.interfaces.worknet?

相关文章:

  • 易语言 excel_易语言初级教程-将图片转化为excel像素画
  • PHP启动mysql时出现路径_MySQL数据库改路径后没办法启动的问题
  • es6 三点运算符_ES6-- 扩展运算符与剩余操作符...
  • mysql teaching_php同步mysql两个数据库中表的数据
  • windows 命令行远程连接_Linux下远程连接Windows桌面
  • 数据库逻辑设计mysql_数据库设计(一)分析及逻辑设计
  • 叠瓦盘为什么不推荐_叠瓦盘还是固态盘还是垂直盘?
  • mysql优化器RBO_RBO基于规则的优化器access paths优先级
  • python类函数里面创建线程_详解python中的线程
  • java取拼音首字母_java怎么根据汉字获取字的拼音首字母
  • reactor java_Java reactor响应式编程
  • awstats mysql_将awstats分析日志结果导入mysql
  • java 什么是swing_Java-Swing是什么?
  • java中的for循环例子_Java中使用增强for循环的实例方法
  • java 时间合并_时间段或时间点,合并。
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2019.2.20 c++ 知识梳理
  • ERLANG 网工修炼笔记 ---- UDP
  • hadoop集群管理系统搭建规划说明
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Linux后台研发超实用命令总结
  • mysql 5.6 原生Online DDL解析
  • Promise面试题2实现异步串行执行
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 大整数乘法-表格法
  • 区块链技术特点之去中心化特性
  • 实现简单的正则表达式引擎
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 1.Ext JS 建立web开发工程
  • NLPIR智能语义技术让大数据挖掘更简单
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #git 撤消对文件的更改
  • #前后端分离# 头条发布系统
  • #图像处理
  • (14)Hive调优——合并小文件
  • (31)对象的克隆
  • (搬运以学习)flask 上下文的实现
  • (转)VC++中ondraw在什么时候调用的
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .“空心村”成因分析及解决对策122344
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .CSS-hover 的解释
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET下的多线程编程—1-线程机制概述
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /etc/sudoer文件配置简析
  • :“Failed to access IIS metabase”解决方法
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 数据结构 - C++] AVL树原理及实现
  • [04]Web前端进阶—JS伪数组