python - 将目录添加到 sys.path/PYTHONPATH

标签 python mechanize python-import pythonpath

我正在尝试从特定目录导入模块。

问题是,如果我使用 sys.path.append(mod_directory) 附加路径,然后打开 python 解释器,目录 mod_directory 被添加到列表 sys.path 的末尾。如果我在打开 python 解释器之前导出 PYTHONPATH 变量,该目录将被添加到列表的开头。在后一种情况下,我可以导入模块,但在前一种情况下,我不能。

有人可以解释为什么会发生这种情况并给我一个解决方案,将 mod_directory 添加到开头,inside python 脚本?

最佳答案

这是按记录工作的。 PYTHONPATH 中指定的任何路径都记录为通常在工作目录之后但在标准解释器提供的路径之前。 sys.path.append() 追加到现有路径。见 herehere .如果你想要一个特定的目录首先出现,只需将它插入到 sys.path 的头部即可:

import sys
sys.path.insert(0,'/path/to/mod_directory')

也就是说,管理导入的方法通常比使用 PYTHONPATH 或直接操作 sys.path 更好。例如,参见 this question 的答案。 .

关于python - 将目录添加到 sys.path/PYTHONPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114391/

相关文章:

html - Ruby Mechanize - 如何在 Mechanize 解析站点响​​应之前解析它?

python - Mechanize 、urllib、beautifulsoup 和相对路径

python - 相对导入和 Python 3 的问题

Python:模拟修补模块,无论它是从哪里导入的

python - 如何将我自己的模块添加到我的 Anaconda 环境中

python - 从另一个对象的变量设置一个对象的变量时奇怪的 Python 行为

python - PyGILState_Ensure() 导致死锁

python - 如何在Python请求模块中获取响应URL?

python - 谷歌云运行 : Calling from outside GCP

python - 如何在python中调用特定的csv字段值