在可编辑模式下使用单独的源目录安装包

2024-01-11

情况

这是示例包的结构:

$ tree Foo/
Foo/
├── setup.py
└── src
    ├── bar.py
    └── __init__.py

包的名称应为foo但是包的源文件放置在src folder.

文件的内容是:

设置.py:

from setuptools import setup

setup(
    name='foo',
    version='1',
    packages=['foo'],
    package_dir={'foo': 'src'}
)

__init__.py:

from .bar import bar

print(bar)

bar.py:

bar = 1

Problem

做的时候pip install Foo一切都很好,我可以按照我的预期使用该包:

>>> import foo
1

但是,当我以可编辑模式安装包时(pip install -e Foo)它不起作用:

>>> import foo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'foo'

相反,我可以导入src now:

>>> import src
1

安装时使用-e交换机创建了一个site-packages/foo.egg-link文件包含以下内容:

<path-to>/Foo
.

对应的一个foo.egg-info目录已创建于Foo:

$ tree Foo/foo.egg-info/
Foo/foo.egg-info/
├── dependency_links.txt
├── PKG-INFO
├── SOURCES.txt
└── top_level.txt

The SOURCES.txt文件包含:

$ cat Foo/foo.egg-info/PKG-INFO
foo.egg-info/PKG-INFO
foo.egg-info/SOURCES.txt
foo.egg-info/dependency_links.txt
foo.egg-info/top_level.txt
src/__init__.py
src/bar.py

and the top_level.txt:

$ cat Foo/foo.egg-info/top_level.txt 
foo

因此,在导入过程中,Python 似乎忽略了中显示的信息Foo/foo.egg-info/但只是扫描Foo/对于一个名为foo(未找到)。

Question

如何准备一个使用单独源文件夹(其名称与包名称不同)的包,以便我可以在可编辑模式下安装它并仍然像正常安装一样使用它(即import <package-name>例如,在任何情况下都应该有效)。


我相信在 src 文件夹中应该有一个 foo 文件夹,其中包含init.py 和 bar.py 这样包名称将是 foo 并且您可以导入 foo 包。但不确定为什么它在可编辑模式下的行为有所不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在可编辑模式下使用单独的源目录安装包 的相关文章

  • 对 Python DataFrame 进行子集化

    我正在从 R 过渡到 Python 我刚刚开始使用 Pandas 我有一个可以很好地子集化的 R 代码 k1 lt subset data Product p id Month lt mn Year yr select c Time Pro
  • Python - 包和设置文件

    我有一个 python 包 需要从我的项目目录中提取设置 这是我的项目当前的结构 Project bin mypackage package files Project myproject project files start py se
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • R CMD INSTALL --build package --> “小插图丢失”

    问题 C gt Rcmd exe INSTALL build library C Users local aphalo Documents R win library 3 0 photobiology C gt Rcmd exe INSTA
  • 确定Python模块中的函数是否可用

    我正在研究一些使用Python套接字的代码socket fromfd http docs python org library socket html socket fromfd功能 但是 此方法并非在所有平台上都可用 因此我正在编写一些后
  • numpy 数组最快的保存和加载选项

    我有一个生成二维的脚本numpy数组与dtype float和形状的顺序 1e3 1e6 现在我正在使用np save and np load对数组执行 IO 操作 然而 这些函数对于每个数组都需要几秒钟的时间 是否有更快的方法来保存和加载
  • 如何最好地将包含列表或元组的 Pandas 列提取到多个列中[重复]

    这个问题在这里已经有答案了 我不小心用错误重复的链接关闭了这个问题 这是正确的 Pandas 将列表的列拆分为多列 https stackoverflow com questions 35491274 pandas split column
  • 字母表中的加密和解密 - Python GCSE

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • 按字段名称对命名元组列表进行排序的 Pythonic 方法

    我想对命名元组列表进行排序 而不必记住字段名的索引 我的解决方案看起来相当尴尬 希望有人能有一个更优雅的解决方案 from operator import itemgetter from collections import namedtu
  • Python argparse store_true 并将可选选项存储在一个参数中[重复]

    这个问题在这里已经有答案了 我需要识别是否单独给出参数或带有可选字符串或两者都没有 parser add argument options parser parse args so prog py arg 应该存储 进入选项 arg pro
  • 不重复的Python组合

    我有一个数字列表 我想从中进行组合 如果我有清单 t 2 2 2 2 4 c list itertools combinations t 4 结果是 2 2 2 2 2 2 2 4 2 2 2 4 2 2 2 4 2 2 2 4 但我想得到
  • 在 (i)python 脚本中从 jupyter 内核获取输出

    我想从单个 ipython 会话中打开多个内核 在这些内核上运行代码 然后收集结果 但我不知道如何收集结果 甚至不知道如何查看 stdout stderr 我怎样才能做这些事情呢 到目前为止我所得到的 我已经使用如下代码管理了前两个步骤 打
  • 多线程写入文件

    前几天刚开始使用 python 对多线程的整个概念还很陌生 我在多线程时写入文件时遇到问题 如果我按照常规方式执行此操作 它会不断覆盖正在写入的内容 使用 5 个线程写入文件的正确方法是什么 不降低性能的最佳方法是在所有线程之间使用队列 每
  • Python unittest - 与assertRaises相反?

    我想编写一个测试来确定在给定情况下不会引发异常 测试是否有异常很简单is上调 sInvalidPath AlwaysSuppliesAnInvalidPath self assertRaises PathIsNotAValidOne MyO
  • 收到的标签值 1 超出了 [0, 1) 的有效范围 - Python、Keras

    我正在使用具有张量流背景的 keras 开发一个简单的 cnn 分类器 def cnnKeras training data training labels test data test labels n dim print Initiat
  • Beautiful Soup 获取动态表数据

    我有以下代码 url https www basketball reference com leagues NBA 2017 standings html all expanded standings html urlopen url so
  • Python 类方法的示例用例是什么?

    我读了Python 中的类方法有什么用 https stackoverflow com questions 38238 what are class methods in python for但那篇文章中的例子很复杂 我正在寻找 Pytho
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • Tensorflow ctc_loss_calculator:找不到有效路径

    当运行我的神经网络 双向 LSTM 进行音频识别时 我使用连接主义时间分类 CTC 但在某些时候 训练网络时我几乎每批都会收到来自 Tensorflow 的警告 W tensorflow core util ctc ctc loss cal
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla

随机推荐

  • 尝试将照片上传/发布到群组时出现 OAuthException

    我目前正在尝试通过应用程序将照片上传到页面和组 我有这些代码 try facebook gt setFileUploadSupport true args array message gt This is my image caption
  • 如何处理 Git 存储库中的图像?

    我继承了一个中等规模的 iOS 项目 大约 30 000 行代码 它有一个insane图像资产的数量 当然我们使用Git Github来进行scm 目前 图像包含在目录树中 因此被提取到存储库中 使其变得臃肿并且通常使开发变得非常令人头疼
  • Chrome 的“请求桌面站点”选项如何工作?

    对于 iOS 谷歌浏览器 当用户点击 请求桌面站点 按钮时 浏览器会做什么来尝试打开桌面站点 我想象网站正在寻找的请求上有某种标头 或者类似的东西 我认为唯一的区别是User Agent 请求中的标头 以下是我的 Android 设备上的
  • Rails JSON 请求未正确解析为 post 参数

    我正在尝试调试 Rails 未解码 JSON POST 数据的问题 服务器日志显示 2011 12 14T06 44 44 00 00 app web 2 Started POST 2011 12 14T06 44 44 00 00 app
  • 具有参数化构造函数的 Xamarin DependencyService

    如何使用 Xamarin Forms DependencyService 通过参数化构造函数注入依赖项 Answer 你不能 程序集属性实现仅适用于默认构造函数 也称为无参数构造函数 例如 assembly Dependency typeo
  • 使用 java 在 infix 到 postfix 应用程序中得到错误的输出

    我最近编写了一个java程序 它采用中缀表达式并将其转换为后缀表达式 它在大多数情况下都有效 但我得到了某些表达式的错误输出 例如表达式 a b c d e 在应该输出的时候会输出 abcde a b c d e import java u
  • Visual Studio“在浏览器中查看”特定页面的快捷方式?

    我们正在使用视觉工作室2008并想知道是否有办法为 创建 键盘或工具栏 快捷方式在浏览器中查看 命令 但是与特定页面来自特定 已加载 项目 我们总是从 Project x 的 Somepage aspx 开始测试 调试我们的应用程序 我想创
  • 不使用过滤函数删除 RDD 中的第一个元素

    我从一个文件构建了一个 RDD 其中 RDD 中的每个元素都是文件中由分隔符分隔的部分 val inputRDD1 RDD String Long myUtilities paragraphFile spark path1 coalesce
  • yii2 路由 - 将参数传递给规则中的路由

    当用户访问domain page 我需要将它们路由到controller action 100 我不想通过 URL 传递任何参数 但想将其添加到 url 规则中 我将下面的代码添加到我的配置文件中 urlManager gt rules g
  • bootstrap下拉顶级导航制作可点击的链接

    我正在使用 bootstrap wordpress 主题创建一个带有下拉菜单的菜单 但是顶级链接仅在单击时显示下拉菜单 并且单击时不会转到页面本身 因此 在 www thermoryuk co uk wp 中 当我单击 地板 时 我想转到地
  • 为什么解释器模式很糟糕?

    In Steve Yegge 对设计模式的评论 http steve yegge googlepages com ten great books 他将解释器模式称为 笑话 他继续谈论编译器的看法如何改变 但解释语言仍然如何继续 尽管我看不出
  • 正则表达式中的捕获组[重复]

    这个问题在这里已经有答案了 我正在探索在正则表达式中捕获组 但我对缺乏相关文档感到困惑 例如 谁能告诉我两个正则表达式之间的区别 madhur and madhur 就我而言 第二个建议匹配madhur字符串中零次或一次 第一个与第二个有什
  • Python/Pandas 计算 Ichimoku 图表组件

    我有 Pandas DataFrame 对象 其中包含日期 开盘价 收盘价 每日最低股票数据和最高股票数据 我想计算的组成部分Ichimoku https www investopedia com terms i ichimoku clou
  • 如何在 Ubuntu 18.04 上安装或升级到 sqlite 3.33.0?

    我目前正在运行带有 SQLite3 的 Ubuntu 18 04 SQLite 3 的版本为 3 22 0 我需要将其升级到版本 3 33 0 以利用可用的新功能 如果我使用 apt get 删除并重新安装 SQLite3 它只会重新安装
  • 如何在 woocommerce 中获取产品的特色图片

    请告诉我哪里出错了 产品特色图片未显示 args array post type gt product posts per page gt 80 product cat gt profiler orderby gt rand loop ne
  • 如何在 Enterprise Architect 中自动生成 HTML 输出

    Enterprise Architect 有一种方法可以生成 HTML RTF 等格式的文档 您可以发布它 但您必须使用其 GUI 手动执行此操作 当您的 eap 文件位于 CVS Subversion 服务器中时 拥有一个每天检查最新版本
  • 将固定大小的 ImageView 在父 ConstraintLayout 中水平居中

    我有一个相当简单的布局 AConstraintLayout占满整个屏幕 一大片CardView在顶部有一个ImageView那是一半CardView和上面的一半 实际上不是一半 但你明白了 然而 有两个问题 ImageView粘在父级的左侧
  • dplyr 连接 A 列或 B 列

    如何使用 dplyrs 连接函数在 R 中通过 OR 语句连接 2 个表 例如 使用以下密钥将 df1 加入到 df2 上 df1 ColumnA df2 ColumnA 或 df1 ColumnA df2 ColumnB library
  • Boost::GIL 如何将图像以 JPEG 或 PNG 格式保存到 char* 中?

    所以我在保存到文件时看到了很多示例 但我想知道是否可以保存到 char 或字符串而不是文件中 也就是说将其保存在内存中 boost 本身似乎没有任何东西可以促进这一点 所有 I O 似乎都基于提供文件名 不过好像还有延伸here http
  • 在可编辑模式下使用单独的源目录安装包

    情况 这是示例包的结构 tree Foo Foo setup py src bar py init py 包的名称应为foo但是包的源文件放置在src folder 文件的内容是 设置 py from setuptools import s