为什么PYTHONPATH被忽略?

1 投票
1 回答
2229 浏览
提问于 2025-04-17 19:24

我正在设置PYTHONPATH,让它包含一些.py文件所在的目录。

但是当我进入Python环境,输入“import file”时,它找不到这个文件(提示“没有名为wsj10的模块”)。

不过,如果我先切换到那个目录,然后再重复同样的操作,文件就能被找到。

我不太明白为什么PYTHONPATH会被忽略。我是按照某个软件的安装说明一步步来的,所以我知道自己没有做错。

有没有什么情况会导致PYTHONPATH被忽略,或者导入不成功呢?

谢谢。

根据下面的评论,这里有个详细的过程:

  1. 把file1.tgz解压到file1/目录下,file1.tgz里面有一个叫file1.py的库/文件。

  2. 在命令行中输入:

    export PYTHONPATH=`pwd`/file1/:./
    
  3. echo $PYTHONPATH显示这个变量已经设置好了。

  4. 运行Python,然后输入“import file1”

我得到的错误是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named file1

如果我先“cd file1”,再导入file1,就能找到这个文件。

1 个回答

1

有没有什么情况会导致PYTHONPATH被忽略,或者导入模块不成功呢?

有的。我在我的/home/me/.bashrc文件里设置了PYTHONPATH,终端里一切都正常,但当Apache和mod_wsgi启动我的Python脚本时,它是以系统用户或专用用户的身份运行的,这些用户并不知道我的.bashrc文件。

针对这种情况,我直接在Apache的配置中设置了Python的路径(使用WSGIPythonPath选项)。

撰写回答