Python 的 os.chdir 函数不起作用

标签 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。

最佳答案

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

参见 sys.path

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

关于Python 的 os.chdir 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23619595/

相关文章:

python - reshape Nd 阵列时出现问题

python - 覆盆子上的 Kivy : Cursor is outside of window

python - 从函数返回给出 None

用于创建 SSH 连接的 Python 脚本

python - 广播错误 Pandas

python - 将 DataFrame 与其自身合并/append 会产生新列

python - 使用 pandas 指定日期限制的奇怪行为

python - 使用 pyformat 进行条件格式化

python - 比较 2 个 dfs 的最佳方法,获取不同 col 的名称 & before + after vals?

python - 管道发送和接收。 unpack 需要长度为 4 的字符串参数