【问题标题】:Why is PYTHONPATH being ignored?为什么 PYTHONPATH 被忽略?
【发布时间】:2013-03-17 13:47:18
【问题描述】:

我将 PYTHONPATH 设置为有一个包含一些 .py 文件的目录。

当我进入 python 并输入“导入文件”时,找不到该文件(它说“没有名为 wsj10 的模块”)。

但是,如果我 cd 到该目录,并重复相同的过程,则找到该文件。

我只是不确定为什么 PYTHONPATH 会被忽略。我严格按照某些软件的安装说明进行操作,所以我知道我在做正确的事情。

在什么情况下 PYTHONPATH 将被忽略或导入不起作用?

谢谢。

在下面的评论之后,这是一个成绩单:

  1. 将 file1.tgz 解压到 file1/。 file1.tgz 包含一个名为 file1.py 的库/文件。

  2. 在shell中输入:

    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,它会识别文件。

【问题讨论】:

  • 向我们展示您正在运行的确切内容。
  • PYTHONPATH 导出了吗?
  • @suspectus 是的,是的。约翰,我添加了那个成绩单。
  • 您的目录中有__init__.py 文件吗?
  • @Burhan,有一个 setup.py,但没有 init.py.

标签: python


【解决方案1】:

在什么情况下 PYTHONPATH 将被忽略或导入不起作用?

是的。我已经在我的 /home/me/.bashrc 中设置了 PYTHONPATH 并且在终端上一切正常,但是当带有 mod_wsgi 的 Apache 启动我的 python 脚本时,它在 sysem 或专用用户下运行,它对我的​​ .bashrc 一无所知。

对于这种特殊情况,我只是使用 apache config 为 apache 设置 python 路径(WSGIPythonPath 选项)。

【讨论】:

  • 嗨,我现在也有同样的问题,但我不太了解 apache。你能告诉我你是如何设置 apache 的 python 路径的吗?
  • Apache 可能以差异用户身份运行,因此它不会获取您的.bashrc。这意味着PYTHONPATH 未设置——这与它被忽略不同。
猜你喜欢
  • 2010-11-03
  • 2018-10-11
  • 2021-11-06
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多