【问题标题】:Add current file directory to Python interpreter path in PyCharm将当前文件目录添加到 PyCharm 中的 Python 解释器路径
【发布时间】:2021-05-19 01:03:06
【问题描述】:

PyCharm 允许自定义 Python 控制台。默认情况下,它会将WORKING_DIR_AND_PYTHON_PATHS 添加到sys.path

import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS,WORKING_DIR_AND_PYTHON_PATHS + '/..', FILE_DIR])

“当前文件目录”(不是当前工作目录)是否有任何变量?这是使相对路径适用于同一目录中的其他模块所必需的。

【问题讨论】:

  • 变量,环境变量或什么是什么意思?要获取当前文件目录,您可以使用os.path.dirname(os.path.realpath(__file__))
  • 我试试那个
  • 这不起作用:sys.path.extend(['/Users/steve/git/deepteam',os.path.dirname(os.path.realpath(__file__))]) NameError: name '__file__' is not defined
  • 您必须将该行放入您正在执行的文件中,而不是放入 pycharm 首选项中
  • 我不想更改源代码。在这种情况下,我宁愿更改运行配置。

标签: python pycharm console


【解决方案1】:

这可以完成(使用下面的选项 2),但不能使用问题中显示的 GUI(选项 1)。必须注意的是,在 PyCharm 中启动控制台有两种截然不同的方式。

1. 如题所示,转至File>Settings>Build, Execution, DeploymentBuild, Execution, Deployment>Console>Python Console。 p>

2. 或者使用Run > Edit Configurations 的运行/调试配置。

GUI 在这两种情况下的作用非常不同

1. 在第一种情况下,IDE 只需调用 OS shell,将 Python 解释器作为第一个参数,将控制台插件的路径作为第二个参数。

C:\path_to_venv\Scripts\python.exe

"C:\JetBrains\PyCharm 2020.1.1\plugins\python\helpers\pydev\pydevconsole.py"

--mode=client --port=12345

IDE 魔术只有一个变量(另见this answer 中的 cmets):

Console. Python Console

WORKING_DIR_AND_PYTHON_PATHS 变量在 PyCharm 中是硬编码的。它显示两个路径:项目根目录和工作目录。

这意味着 IDE 不会公开任何其他允许在调用解释器/控制台之前或之后检索文件的“魔术变量”。 Python 和操作系统此时都无法知道您要使用哪个文件/模块,唯一的方法是将文件路径硬编码为环境变量(但这并不能解决任何问题,因为您必须更改每次更改文件时的路径。)

2. 第二个选项,确实允许在调用控制台时透明地传递您当前在编辑器中打开的模块/文件。

基本上通过使用“FileDir 宏”创建run/configuration "template",只要您在编辑器中打开的任何模块上运行调试器,就会为该模块创建“临时配置”,允许从中检索宏值sys.argv。在这种情况下,文件由 IDE 动态选择,宏将路径与它一起传递。

C:\path_to_venv\Scripts\python.exe

"C:\JetBrains\PyCharm 2020.1.1\plugins\python\helpers\pydev\pydevd.py"

--multiproc --qt-support=auto --client 127.0.0.1 --port 12345

--file C:/path_to_module/teste2.py C:\path_to_module

第二个选项是应该如何在 PyCharm 中使用控制台来获取问题中的功能,如屏幕截图所示。

【讨论】:

  • 详细信息!我会在月底回来讨论这个问题——我现在正在授予/假设正确。
猜你喜欢
  • 1970-01-01
  • 2018-08-03
  • 2017-12-13
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 2014-08-16
相关资源
最近更新 更多