PyCharm 当前工作目录

Posted

技术标签:

【中文标题】PyCharm 当前工作目录【英文标题】:PyCharm current working directory 【发布时间】:2016-03-22 02:50:32 【问题描述】:

最近,我在使用 PyCharm 时无法在代码中使用相对路径。例如,一个简单的open('test.txt', 'r') 将不起作用 - 因此我确信该文件与正在运行的 py 文件存在于同一级别。 PyCharm 将返回此错误。

FileNotFoundError: [Errno 2] 没有这样的文件或目录:

在 *** 上在线阅读答案后,我尝试了多种选择,包括:

test.txt 更改为./test.txt 关闭项目,删除.idea文件夹,用代码打开文件夹。 重新安装以及安装最新版本的 PyCharm。 使缓存失效并重新启动。

这些选项都不适合我。有什么方法可以告诉 PyCharm 刷新当前工作目录(甚至可以查看它认为当前工作目录在哪里)?

提前致谢!

编辑:我应该注意在终端窗口中运行脚本会起作用。这似乎是 PyCharm 的问题,而不是脚本的问题。

【问题讨论】:

你可以把这个放到你的脚本里查看当前工作目录import os print(os.getcwd()) 有趣,它说它在C:\Program Files (x86)\JetBrains\PyCharm 5.0.2\jre\jre\bin 您是否在命令行上以提升的权限运行?如果您使用的是类 Unix 系统,则应检查文件的权限 nvm,你在 Windows 上 :) 【参考方案1】:

我有 Pycharm 4.5,所以情况可能有所改变。

尝试进入设置>项目>项目结构

在此对话框中,单击包含源代码的文件夹,然后单击菜单中的蓝色文件夹将其标记为“源”文件夹。我相信这解决了 Pycharm 中的很多路径问题

这里是“内容根”的链接:https://www.jetbrains.com/pycharm/help/content-root.html

【讨论】:

这是我刚刚找到的类似修复 (link here),我必须通过单击右上角的项目名称并编辑其配置来添加工作目录。必须添加这个额外的步骤似乎是违反直觉的——也许一开始创建项目时就存在一些问题。我会把你的标记为正确的,因为它是最接近的! 遗憾的是,这在 OSX 上对我不起作用 - 即使我将项目的根目录设置为我的脚本所在的 Source 文件夹,Runner 也无法找到该脚本。我找到的唯一解决方案是下面的@andere,您在其中明确将工作目录设置为绝对路径。我不确定这是否会在项目移动时中断... @meowsqueak 很高兴你解决了......对于你的问题,我通常也使用我从__file__ 拆分的目录路径给我们os.chir(directory_path)。在 IDE 之外运行脚本以及从脚本和文本文件所在位置以外的目录调用脚本时,这样做会有所帮助。【参考方案2】:

__file__ 指文件路径。因此,您可以使用以下内容来引用同一目录中的文件:

import os

dirpath = os.path.dirname(__file__)
filepath = os.path.join(dirpath, 'test.txt')
open(filepath, 'r')

【讨论】:

我比我更喜欢你的解决方案 :) 虽然我试图将它保持在 Pycharm 级别,但哈哈 谢谢!我的问题更集中在 PyCharm 但很高兴知道我也可以使用 os 模块!【参考方案3】:

改变: 运行 > 编辑配置 > 工作目录, 它为特定项目设置工作目录。 (这是在 Mac 上)

【讨论】:

【参考方案4】:

有时它是不同的。我通过单击 Pycharm 工具栏上的“运行”,然后单击“编辑配置...”解决了我的问题,并将我的解释器更改为另一个实际的解释器。只是在设置中更改它并没有帮助,但是这个操作已经完成了;)

【讨论】:

【参考方案5】:

几分钟前我也遇到了同样的问题...但是,使用最新版本的 PyCharm 只需使用该文件的相对路径即可解决。 例如,一个简单的 f = open('test', 'r') 就可以了。

【讨论】:

【参考方案6】:

在 PyCharm 中,点击“运行/编辑配置...”

然后在“Python”下拉菜单中找到您的脚本文件。检查“工作目录”条目并在必要时进行更改。

【讨论】:

【参考方案7】:

对 mac 用户的一点说明。在 mac 中,@andere 上面所说的对于设置工作目录是正确的。但是,如果您的代码位于不同的文件夹中,例如 working_dir/src/(如经典的 java/scala 文件结构),在这种情况下您仍然需要设置 Sources Root。在 mac 的 PyCharm 中,这可以通过右键单击 src/ 文件夹 > 将目录标记为 > 源根来完成。帮助我解决了许多类似的导入问题。希望这对某人有所帮助。

【讨论】:

【参考方案8】:

当前版本2019.2 以某种方式忽略了“项目结构”中的“源根”。以下是实际执行它的方法:

运行 -> 编辑配置 -> Python -> “编辑模板” -> 填写“工作目录”

【讨论】:

+1。这个解决方案解决了我的问题。发生了什么:我有一个项目文件夹,其中包含一些使用路径(读取文件和东西)的 python 文件。比我从 github 拉出新目录,并将这些 python 文件移动到新文件夹。工作目录保持不变。所以这个解决方案解决了,谢谢:) 谢谢!!!我曾经手动更改每个文件的工作目录:) 不知道有模板【参考方案9】:

解决此问题的确切答案,,

    转到编辑配置(就在绿色代码运行器图标的左侧) 点击python(不是任何特定的python脚本)只选择PYTHON 然后点击右侧下方的[编辑配置模板] 通过进入这些块选择当前工作目录 它将更改项目文件夹中存在的所有 python 文件的 CWD.. 那么所有文件都会理解从您的实际项目名称开始的相对路径..

我希望这将解决您所有与问题相关的路径。

【讨论】:

以上是关于PyCharm 当前工作目录的主要内容,如果未能解决你的问题,请参考以下文章

pycharm在同目录下import划红线但实际可以运行

pycharm在同目录下import划红线但实际可以运行

Pycharm下同一目录的py文件不能相互调用的原因分析

解决pycharm在同目录下import,pycharm会报错,但是实际可以运行

pycharm工程目录切换工程和文件显示

Pycharm 项目无法导入自己写的模块(问题记录贴)