Python的os.chdir函数不起作用

2024-05-19 08:35:48 发布

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

我有一些非常神秘的行为,脚本无法运行。显然,下面的脚本很琐碎,什么也不做,但它在真实的脚本中再现了行为。这是名为test.py的文件中的代码。

import os
os.chdir('/home/jacob/twcSite')
import app

app位于'home/jacob/twcSite'目录中,该目录与当前目录不同,包含test.py。如果我在命令行中键入python test.py,就会得到ImportError: No module named app。但是,如果我只是键入python来启动交互式解释器并复制粘贴完全相同的三个命令,那么它就可以正常工作,而不会出现导入错误。

什么可能导致这个错误?这是同一版本的python。完全相同的代码行。为什么在这两种情况下我会有不同的行为?为了提供更多细节,如果在调用os.chdir之前和之后将输出打印到os.getcwd(),它确实声明已经更改到正确的目录(尽管显然不是这样)。我在运行Ubuntu 14.04,Python版本2.7.6。


Tags: 代码pytestimport版本目录脚本app
2条回答

更改当前目录不是在Python中查找模块的方法。由于目录不包含在Python搜索范围中,您可以使用以下代码手动添加它:

import os.path, sys
app_dir = os.path.join('home', 'jacob', 'twcSite')
sys.path.insert(0, app_dir)

import app

更改目录不会改变导入路径,只会更改打开文件的目录等。

sys.path

import sys
sys.path.append('/home/jacob/twcSite')
import app

相关问题 更多 >

    热门问题