【问题标题】:Why PyCharm adds current file and parent directory to path?为什么 PyCharm 将当前文件和父目录添加到路径中?
【发布时间】:2020-10-19 09:04:40
【问题描述】:

我在带有 Python 3.8 的 Windows 10 上使用 PyCharm。我试图让 Python 导入工作从父目录使用:

import sys
sys.path.append("..")  # Adds higher directory to python modules path.
from trace_recursion import trace

效果很好,但后来我注意到注释掉 sys.path.append("..") # Adds higher directory to python modules path. 也有效。

我从终端检查了这个,注释掉 sys.path.append("..") 破坏了程序,正如预期的那样。

然后我对print(sys.path) 的输出进行了文本比较,PyCharm 的输出包括当前文件和项目目录,而从终端运行时的输出不包括。

请问这是怎么回事? PyCharm 是否缓存了我第一次运行 sys.path.append("..") 时的扩展路径,还是 PyCharm 的某种默认行为添加它?还是别的什么?

【问题讨论】:

    标签: python path pycharm


    【解决方案1】:

    这是由这两个选项引起的,默认情况下在每个运行配置中都会选择:

    Add contents root to PYTHONPATH  
    Add source root to PYTHONPATH
    

    https://www.jetbrains.com/help/pycharm/creating-and-editing-run-debug-configurations.html#createExplicitly

    如果取消选中这些没有帮助,那么问题很可能与此处相同:Why does PyCharm always add "contents root" to my PYTHONPATH, and what PYTHONPATH?

    【讨论】:

      【解决方案2】:

      Pycharm 有两个默认设置的选项:

      将内容根目录添加到 PYTHONPATH
      将源根目录添加到 PYTHONPATH

      如果选项被选中,那么您将拥有您在此处的场景,您可以尝试取消选中该选项,如果场景仍然存在,那么您想尝试这个链接:- Why does PyCharm always add “contents root” to my PYTHONPATH, and what PYTHONPATH? (from stack overflow)

      要点:-

      • 取消选中上面给出的选项
      • 如果错误仍然存​​在,请检查上面的链接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-03
        • 2011-09-18
        • 2018-04-14
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 2014-08-16
        相关资源
        最近更新 更多