将当前文件目录添加到 PyCharm 中的 Python 解释器路径
Add current file directory to Python interpreter path in PyCharm
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])
“当前文件目录”(不是当前工作目录)是否有任何变量?这是使相对路径适用于同一目录中的其他模块所必需的。
这可以完成(使用下面的选项 2)但不使用问题中显示的 GUI(选项 1)。必须注意在 PyCharm.
中有两种截然不同的方式启动控制台
1. 如问题所示,转到File
>
Settings
>
Build, Execution, Deployment
>
Console
>
Python Console
.
2. 或者在 Run
>
Edit Configurations
.
使用 Run/Debug 配置
两种情况下 GUI 的作用非常不同
1. 在第一种情况中,IDE简单地调用了OSshell 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 中的评论):
The WORKING_DIR_AND_PYTHON_PATHS
variable is hardcoded in PyCharm. It displays two paths: the project root and the working directory.
这意味着 IDE 不会公开任何其他允许在调用 Interpreter/Console 之前或之后检索文件的“魔法变量”。此时 Python 和 OS 都无法知道您要使用什么 file/module ,唯一的方法是将文件路径硬编码为环境变量(但这不会解决不了任何问题,因为每次更改文件时都必须更改路径。)
2. 第二个选项,确实允许透明地传递你当前在编辑器中打开的module/file你调用控制台。
基本上是通过使用“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 应该如何使用控制台来获得问题中的功能,如屏幕截图所示。
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])
“当前文件目录”(不是当前工作目录)是否有任何变量?这是使相对路径适用于同一目录中的其他模块所必需的。
这可以完成(使用下面的选项 2)但不使用问题中显示的 GUI(选项 1)。必须注意在 PyCharm.
中有两种截然不同的方式启动控制台1. 如问题所示,转到File
>
Settings
>
Build, Execution, Deployment
>
Console
>
Python Console
.
2. 或者在 Run
>
Edit Configurations
.
两种情况下 GUI 的作用非常不同
1. 在第一种情况中,IDE简单地调用了OSshell 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 中的评论):
The
WORKING_DIR_AND_PYTHON_PATHS
variable is hardcoded in PyCharm. It displays two paths: the project root and the working directory.
这意味着 IDE 不会公开任何其他允许在调用 Interpreter/Console 之前或之后检索文件的“魔法变量”。此时 Python 和 OS 都无法知道您要使用什么 file/module ,唯一的方法是将文件路径硬编码为环境变量(但这不会解决不了任何问题,因为每次更改文件时都必须更改路径。)
2. 第二个选项,确实允许透明地传递你当前在编辑器中打开的module/file你调用控制台。
基本上是通过使用“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 应该如何使用控制台来获得问题中的功能,如屏幕截图所示。