我有一些非常神秘的行为,脚本无法运行。显然,下面的脚本很琐碎,什么也不做,但它在真实的脚本中再现了行为。这是名为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。
更改当前目录不是在Python中查找模块的方法。由于目录不包含在Python搜索范围中,您可以使用以下代码手动添加它:
更改目录不会改变导入路径,只会更改打开文件的目录等。
见sys.path
相关问题 更多 >
编程相关推荐