为什么PYTHONPATH被忽略?
我正在设置PYTHONPATH,让它包含一些.py文件所在的目录。
但是当我进入Python环境,输入“import file”时,它找不到这个文件(提示“没有名为wsj10的模块”)。
不过,如果我先切换到那个目录,然后再重复同样的操作,文件就能被找到。
我不太明白为什么PYTHONPATH会被忽略。我是按照某个软件的安装说明一步步来的,所以我知道自己没有做错。
有没有什么情况会导致PYTHONPATH被忽略,或者导入不成功呢?
谢谢。
根据下面的评论,这里有个详细的过程:
把file1.tgz解压到file1/目录下,file1.tgz里面有一个叫file1.py的库/文件。
在命令行中输入:
export PYTHONPATH=`pwd`/file1/:./
echo $PYTHONPATH
显示这个变量已经设置好了。运行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选项)。