Pycharm:文件可以在控制台中找到,但无法使用运行工具窗口找到

时间:2016-01-05 11:09:37

标签: python pycharm

我在OS X上使用Pycharm。

结构是:

/Project
 /src
  codeA.py
  codeB.py
 /Data
  data.txt

src被标记为Sources Root,Data被标记为Resource root。

问题在于我是否在codeA.py中编写

import codeB
with open("./Data/data.txt",'r'):
    pass

如果我

  1. 在控制台中逐行执行代码,可以找到该文件。

  2. 点击&#34执行;运行code.py"我会收到No Such File错误。

  3. 在终端执行codeA.py,我甚至无法导入codeB。

  4. 如果我改为编写../Data/data.txt,则方法2可以运行,但方法1将获得No Such File Error。

    我检查了项目解释器路径和控制台路径。他们是一样的。

    有什么想法解决这个问题吗?非常感谢!

    ---------- ------------已编辑

    正如Cyrbil所说,不要使用相对路径。他的解决方案完美地解决了这个问题。

    这些错误的原因:

    Pycharm控制台的工作目录是\Project。但是,如果单击run codeA.py,工作目录将更改为\Project\src(我将pprint(os.getcwd())添加到codeA.py以查看它。因此,毫无疑问,方法1将会运行,而方法2赢得了

    对于方法3,Pycharm自动将源根和内容根添加到PYTHONPATH。如果您在终端中运行代码,则必须由您自己执行此操作。

1 个答案:

答案 0 :(得分:3)

Pycharm的控制台将包含项目根目录PYTHONPATH。您可以在Settings > Build, Execution, Deployment > Console > Python Console中查看并设置此内容。

您的运行配置可能有误,请确保工作目录正确,并选中Add content/source roots to PYTHONPATH复选框。

enter image description here

为避免任何路径问题,建议使用绝对路径:

# get project path from main entry file
file_path = os.path.dirname(os.path.abspath(__file__))
project_path = os.path.abspath(os.path.join(file_path, os.path.pardir))

data_path = os.path.join(project_path, 'Data/data.txt')