我正在处理多个需要分成各自目录的项目。每个目录都有一些 .ipynb 文件,它们利用相对路径将脚本定向到 .ipynb 位置的各种输入,因为我的团队通过 GIT 访问这些文件,这些 GIT 在不同同事的设备上可能位于不同的绝对路径中。
这一切都很好,直到我开始编写一个脚本,该脚本通过 %run 命令拉入这些其他 .ipynb 文件。当我运行这些文件中定义的函数时,它们使用我当前的工作目录作为它们自己的相对路径的起始位置。
例如,我在 GIT/tools/lemons/functions/lemon.ipynb 中有 lemon.ipynb,它使用相对路径 '..\inputs\lemonfactors.csv' 导入 GIT/tools/lemons/inputs/lemonfactors.csv.
如果我在 GIT/tools/master.ipynb 中创建一个新文件并使用 %run 导入 lemon.ipynb 文件中定义的函数,这些函数将尝试相同的相对路径,但相对于我当前的位置,所以它看起来对于不存在的 GIT/inputs/lemonfactors.csv。
如何确保在 lemon.ipynb 文件中它总是相对于它自己的文件位置?
__file__
在 Jupyter 中不起作用,所有尝试都使用 getcwd(),e tc 的变体。遇到与相对路径相同的问题。
感谢您的见解。