为笔记本设置默认 sys.path

2023-11-23

我将所有 .py 文件放在文件夹 script 中,将所有 IPython 笔记本放在名为 Notebook 的文件夹下。

每个笔记本文件对脚本上的一个或多个文件存在多个交叉依赖关系。

Having sys.path.append在每个笔记本顶部似乎很麻烦,我希望有一种方法可以添加默认查找路径,就像我们添加的那样PYTHONPATH to .bash_profile.

现在我执行以下操作:

import sys
sys.path.append("<path where DeriveFinalResultSet.py exists>)
import DeriveFinalResultSet as drs

我希望有一个可以执行以下操作的设置:

import DeriveFinalResultSet as drs

为了避免“隐藏配置”(即不属于源代码控制/特定于机器的内容)并保持您所描述的笔记本/代码分离,我做了如下操作:

code/
    mymodule.py
    mypackage/
        __init__.py

notebooks/
    mynb.ipynb
    mynb2.ipynb
    paths.py   <--- below

In paths.py:

import sys
import pathlib
sys.path.insert(0, str(pathlib.Path(__file__).parents[1] / 'code'))
# sys.path[0] = str(pathlib.Path(__file__).parents[1] / 'code')

Then in mynb*.ipynb我可以愉快地做:

import paths
import mymodule, mypackage

, etc.

后一种形式有效地替换了从空字符串(当前目录)到“code”目录的导入路径,这可能更干净一些。这使得导入对使用类似的东西不敏感os.chdir().

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

为笔记本设置默认 sys.path 的相关文章

  • min() arg 是一个空序列

    我试图找到矩阵行中的最小元素 但有两个条件 1 它必须 gt 0 2 并且这个点一定不能被访问 is visited k is False 我下一步正在尝试做 min x for x in matr sum i if x gt 0 if i
  • pydev 断点不起作用

    我正在使用 python 2 7 2 sqlalchemy 0 7 unittest eclipse 3 7 2 和 pydev 2 4 开发一个项目 我在 python 文件 单元测 试文件 中设置断点 但它们被完全忽略 之前 在某些时候
  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • 在 Python 中同时插入行

    我正在尝试对我的代码进行矢量化 但遇到了障碍 我有 nxd x 值数组 x1 xn 其中每一行 x1 有很多点 x11 x1d nxd y 值数组 y1 y2 y3 其中每一行 y1 有很多点 y11 y1d x 值的 nx1 数组 x 1
  • 如何在 Python 2.4 CSV 阅读器中禁用引用?

    我正在编写一个 Python 实用程序 需要解析一个我无法控制的大型且定期更新的 CSV 文件 该实用程序必须在仅提供 Python 2 4 的服务器上运行 CSV 文件根本不引用字段值 但Python 2 4版本的csv库 http ww
  • Python实时读取串口数据

    我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据 PIC 在 2Mbps 下完美定时工作 FTDI USB 串行端口在 2Mbps 下工作也很好 均通过示波器验证 我每秒发送消息 大小约为 1
  • python中嵌套字典值的总和

    我有一本这样的字典 data 11L a 2 b 1 a 2 b 3 22L a 3 b 2 a 2 b 5 a 4 b 2 a 1 b 5 a 1 b 0 33L a 1 b 2 a 3 b 5 a 5 b 2 a 1 b 3 a 1 b
  • 使用 Matplotlib 的范围绘制图像的 3D 轮廓

    正如我所介绍的here https stackoverflow com questions 18792624 fits image input to a range in plot python 在二维中 我想知道如何 缩放 要绘制到绘图中
  • 使用 NumPy 的 Mittag-Leffler 函数的不稳定性

    在尝试重现时Wolfram MathWorld 上的情节 http mathworld wolfram com Mittag LefflerFunction html 并试图帮助这个问题 https stackoverflow com qu
  • self.__dict__.update(**kwargs) 的风格是好是坏?

    在 Python 中 假设我有一些类 Circle 它继承自 Shape Shape 需要 x 和 y 坐标 此外 Circle 需要半径 我希望能够通过执行类似的操作来初始化 Circle c Circle x 1 y 5 r 3 Cir
  • Python 中嵌套列表的排序和分组

    我有以下数据结构 列表的列表 4 21 1 14 2008 10 24 15 42 58 3 22 4 2somename 2008 10 24 15 22 03 5 21 3 19 2008 10 24 15 45 45 6 21 1 1
  • 如何使用appium自动化Android手机后退按钮

    我正在使用 Appium python 客户端库 对 Android 上的混合移动应用程序进行测试自动化 我无法找到任何方法来自动化或创建手势以使用 电话后退 按钮返回到应用程序的上一页 有没有可以使用的驱动函数 我尝试了 self dri
  • 为什么最简单的 requests_mock 示例在 pytest 中失败?

    我有一个特殊的问题requests mock 我想用它pytest测试我的 API 包装器库 我尝试过使用requests mock 文档中的第一个示例 http requests mock readthedocs io en latest
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • 收到“/:未找到事件。”使用 PyCharm 远程调试器时

    当我使用 PyCharm 通过 ssh 进行远程调试时tcsh shell 服务器 很多时候它停止工作 并显示 未找到事件 更具体地说 我在 pycharm 调试控制台中遇到以下内容 ssh username hostserver 22 p
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • Pandas:按日历周分组,然后绘制真实日期时间的分组条形图

    EDIT 我找到了一个非常好的解决方案并将其发布在下面作为答案 结果将如下所示 您可以为此问题生成一些示例数据 codes list ABCDEFGH dates pd Series pd date range 2013 11 01 201
  • PyMC3 和 Theano - 导入 pymc3 后,有效的 Theano 代码停止工作

    一些简单的 theano 代码可以完美运行 当我导入 pymc3 时停止工作 这里有一些片段可以重现错误 Initial Theano Code this works import theano tensor as tsr x tsr ds
  • 将同一 numpy 数组的两个视图组合成单个视图而不复制数组?

    我有一个大型 2d numpy 数组 我想删除它的子集并处理函数剩下的内容 我需要对许多子集执行此操作 因此理想情况下我不想每次都创建数组的副本 该函数不会更改数组中的任何值 mat np load filename mat 1 mat i

随机推荐

  • jquery 调用命名函数的点击事件

    我有一个 jQueryonClick处理程序 用匿名函数编写 如下所示 selector on click function do something 我将概括在命名函数中提取逻辑的匿名函数 这促使我执行以下操作 selector on c
  • 链接批处理脚本时出现意外的双 & 符号/管道行为

    我的 foo bat 文件 exit b 1 我在cmd提示符下执行的内容 foo bat echo OK Result exit b 1 OK 然而 当我使用双管时 不会出现回声 foo bat echo OK Result exit b
  • 您将如何编写一种简单的编程语言? [复制]

    这个问题在这里已经有答案了 可能的重复 设计简单编程语言的方法 学习编写编译器 我想编写一种语法类似于 QBasic 但更简单的编程语言 我希望它适合初学者 它的简单性将鼓励有抱负的程序员不要放弃并让他们对编程产生兴趣 例如 代替 QBas
  • 如何确定子例程是否正在使用调用者的 eval 内调用?

    我仍在学习 Perl 我的任务是使用caller确定是否正在从某个子程序调用eval在任何更高的级别 我应该想出一些代码来测试它并打印Yes如果它来自eval or No如果不是的话 我找不到任何关于如何使用的好例子caller在网上 想知
  • 如何在 Windows XP 中的可执行文件上设置处理器关联?

    我有一个带有第三方应用程序的四核系统 偶尔会旋转多个进程 始终是相同的可执行文件 但有多个实例 并占用 100 的 CPU 时间 我还在同一个机器上运行了几个 Web 服务 IIS 和第三方 所有核心都繁忙的问题是 它会使第三方 Web 服
  • Visual Studio 2015 测试资源管理器看不到 XUnit dnx 特征

    Visual Studio 2015 测试资源管理器无法识别我的测试特征 当我将其添加到 DNX 项目中的测试时 Trait Category Test 该测试仍然显示在测试资源管理器中的 无特征 组下 按特征对测试进行分组时 看起来这已经
  • 避免“使用未分配的局部变量”错误

    我有两种与此等效的方法 请原谅这个人为的示例 public void WithResource Action
  • 从流启动进程

    我有一个包含 PDF 文件的内存流 是否可以在不保存到硬盘的情况下查看 PDF Process Start 仅采用路径而不采用流 谢谢 只能通过用 C 实现您自己的伪文件系统 以某种方式将其安装为 Windows 中的磁盘 并让它拦截打开的
  • 如何在家庭环境中使用化石 (DVCS)?

    我正在尝试将化石作为我的新版本控制系统 因为我是一个致力于小型项目的孤独开发人员 我开始测试化石 但遇到了一个 可能是主要的新手 问题 如何推送或拉取到另一个目录 这在 Hg 上很容易 Fossil pull 或push 命令需要URL 而
  • 带有 libxml 的 Swift 框架

    我有使用 KissXML Objective C 库的 Swift Framework 项目 KissXML 内部使用 libxml 当我构建 xcode 项目 Xcode 6 beta 5 时 出现以下错误 error
  • set_union 与多集容器?

    当一个或两个输入容器是具有重复对象的多重集时 算法 std set union 的返回是什么 傻瓜会迷路吗 我们假设例如 multiset
  • 使用 Smtp.mail.microsoftonline.com 发送电子邮件

    上下文 我们是一家小公司 没有 Exchange Server 或任何专用服务器 但我们仍然需要拥有 发送电子邮件 我们决定使用微软在线服务 MOS 目标 我们有一个 Web 服务器 带有 IIS 6 0 的 Windows Server
  • 自定义 Laravel Passport 响应未经身份验证

    目前 我使用 Laravel 中使用护照功能制作的 api 具有登录 注册 更新和删除功能 使用此 api 插入数据和从数据库获取数据一切正常 现在我想知道 当令牌过期时 如何自定义 api 的响应 令牌的过期也正常工作 它会自动显示此消息
  • 如何检查 Android SQLite 数据库中是否存在表?

    我有一个android应用程序 需要检查数据库中是否已有记录 如果没有 则处理一些事情并最终插入它 如果数据确实存在 则只需从数据库中读取数据 我正在使用 SQLiteOpenHelper 的子类来创建并获取 SQLiteDatabase
  • XML 声明标签区分大小写吗?

    我有一个可能非常简单 愚蠢的问题 但我在任何地方都找不到答案 我需要对此非常确定 我有来自不同供应商的各种 XML 文件 其中一个供应商向我提供了一个 XML 文件 其中包含日语字符 最初 我在处理 XML 文件时遇到了麻烦 我正在使用微软
  • 具有多个捕捉点的 CoordinatorLayout

    这里我有一个相当复杂的动画 可以使用以下方法以简单的方式解决 我相信 协调器布局 它有3个状态 初始 左屏幕 标题视图完全显示 橙色 背景 工具栏 灰色圆角矩形 实际上是那里的照片 加上下面的一些其他视图 TextViews RatingB
  • 在 R 中抓取受密码保护的网站

    我正在尝试从 R 中受密码保护的网站中抓取数据 通过阅读 httr 和 RCurl 包似乎是使用密码身份验证进行抓取的最佳选择 我还研究了 XML 包 我试图抓取的网站如下 您需要一个免费帐户才能访问完整页面 http subscriber
  • 使用 Visual Studio 2010 运行 64 位版本的 IIS Express 8 RC

    我有一个使用 64 位版本的网络应用程序SharpSvn 具有非托管依赖项的托管 DLL 它不能在 IIS Express 7 0 中运行 切换到 32 位版本的程序集效果很好 我安装的是64位版本IIS 8 RC 但是 Visual St
  • 为什么这不能在 Java 中编译?

    如果你给 public class test public static void main String ar if true int i 0 它没有编译 但带大括号的相同代码是 public class test public stat
  • 为笔记本设置默认 sys.path

    我将所有 py 文件放在文件夹 script 中 将所有 IPython 笔记本放在名为 Notebook 的文件夹下 每个笔记本文件对脚本上的一个或多个文件存在多个交叉依赖关系 Having sys path append在每个笔记本顶部