cwd被添加到路径

时间:2019-09-17 01:56:29

标签: python python-3.x

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

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

package1/main.py里面我有import package0

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

当我在另一台计算机上运行相同的代码时,出现了导入错误。

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

2 个答案:

答案 0 :(得分:0)

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

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

编辑:继续解决如何更改任何特定文件的工作目录,这应该抓住当前运行文件的目录,更改其路径,并将目录更改为更高的目录。

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

答案 1 :(得分:0)

我找到了解决方案。我不知道为什么这可以解决问题。 我在pythonpath的{​​{1}}上添加了两个文件夹,其中有一些TensorFlow内容,与此任务无关。 当我评论添加这些文件夹的行时,我的cwd停止了添加到.bashrc的操作。我查看了这些文件夹,但不知道是什么原因造成的。 无论如何我还是很好奇。

相关问题