正在将cwd添加到路径

2024-10-03 19:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个布局如下的文件夹:

root/
    package0/
       __init__.py
       main.py
    package1/
       __init__.py
       main.py

package1/main.py中我有import package0

当我打开root文件夹上的终端并运行python package1/main.py时,它工作正常。但这很奇怪,因为cwd不应该包含在path中,而应该包含在脚本所在的文件夹中,在本例中是package1。 当我打印sys.path时,我可以看到根文件夹在那里

当我在我的另一台计算机上运行相同的代码时,我得到了预期的导入错误

我不明白为什么我会看到这种行为。 我已经检查了.bashrc,没有代码将cwd添加到python路径。 两台计算机上可能有什么不同,我正在通过git将根文件夹从一台计算机传输到另一台计算机


Tags: path代码pyimport脚本文件夹终端init
2条回答

我找到了解决办法。我不知道为什么这解决了问题。 我在.bashrc上的pythonpath中添加了两个文件夹,一些TensorFlow的东西,与此任务无关。 当我对添加这些文件夹的行添加注释时,我的cwd停止添加到pythonpath。我查看了这些文件夹,但我不知道是什么原因造成的。 我还是很好奇

本质上,每当启动特定脚本时,'working directory'就是启动脚本的目录。当您使用命令行从根文件夹运行脚本时,脚本将查找您提到的任何文件,其中根文件夹是任何路径的“根”

希望这能解决你的一些问题。如果您对更改起始目录感兴趣,可以阅读有关它的更多信息here

编辑:继续介绍如何解决更改任何特定文件的工作目录,这应该抓住您当前运行的文件的目录,更改它的路径,并更改一个更高的目录

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))
os.chdir(dir_path)
os.chdir("..")

相关问题 更多 >