Pycharm and Spyder Search Path¶
2025-01-23
本文主要由豆包生成,缺乏人工审核
Pycharm 会将哪些目录加入到 python 的搜索路径?¶
在PyCharm中运行程序时,PyCharm会将以下目录添加到Python的搜索路径中:
项目根目录:无论被运行的程序在项目的哪个子目录,项目根目录始终会被添加到Python搜索路径中。这确保了项目内不同模块间可以正确相互引用。例如,假设项目结构为
project/,其中包含main.py和utils/子目录,utils/中有helper.py,即使从utils/目录运行main.py,project/作为根目录仍在搜索路径,main.py能通过from utils.helper import some_function引用helper.py中的函数。源根目录:在PyCharm项目设置中标记为“Sources Root”的目录也会被添加到搜索路径。这有助于区分项目中不同类型的目录,如测试目录、资源目录等。默认情况下,项目根目录通常是源根目录,但可以在项目结构设置中重新指定。例如,将
project/src/设为源根目录,即使运行的脚本在其他位置,src/目录及其子目录中的模块都能被正确导入。内容根目录:PyCharm会将项目的内容根目录添加到Python搜索路径。内容根目录是项目的主要目录,包含所有项目相关文件。项目通常只有一个内容根目录,即项目根目录,但在某些复杂项目结构或多模块项目设置下,可能有多个内容根目录,这些目录都会被添加到搜索路径。
脚本所在目录 (可以是子目录)
Spyder Project 是怎样做的?¶
在Spyder中运行程序,当被运行的程序不在项目根目录时,会将以下几类目录加入到Python的搜索路径:
1. 脚本所在目录¶
运行脚本时,Spyder会自动把该脚本所在的目录添加到Python搜索路径。这样做是为了让脚本能够顺利导入同目录下的其他模块。比如有一个脚本script.py存于project/subfolder目录,当运行script.py时,project/subfolder就会被加入搜索路径,script.py就可以导入subfolder目录里的其他模块。
2. PYTHONPATH环境变量指定的目录¶
PYTHONPATH是一个系统环境变量,其中包含了一系列以路径形式呈现的目录。Spyder在启动时会读取这个环境变量,并把其中指定的目录添加到Python搜索路径。你可以通过以下方式设置PYTHONPATH:
Windows:在系统属性中设置环境变量,或者在命令行里使用
set PYTHONPATH=path1;path2来临时设置。Linux/macOS:在终端使用
export PYTHONPATH=path1:path2来临时设置,或者在.bashrc、.zshrc等文件里永久设置。
3. Spyder项目根目录¶
要是你在Spyder里创建了项目,那么项目根目录也会被添加到Python搜索路径。这样一来,项目内不同子目录的模块之间就可以相互导入。你可以在Spyder的项目菜单里创建和管理项目。
4. Python标准库和第三方库安装目录¶
Python标准库所在目录以及通过pip、conda等工具安装第三方库的目录,都会自动添加到搜索路径。这些目录一般由Python解释器的安装位置和包管理工具的配置所决定。例如,使用Anaconda环境时,库会安装在Anaconda的site-packages目录下。
Spyder 工程项目与搜索路径¶
“在 Spyder 里创建了项目” 的含义¶
在 Spyder 里创建项目,意味着你为自己的工作内容设定了一个特定的管理单位。借助项目功能,你能够更高效地管理代码、数据和相关文件。创建项目后,Spyder 会记住该项目的配置和状态,下次打开项目时可以快速恢复到之前的工作环境。此外,Spyder 还会把项目根目录添加到 Python 的搜索路径中,这样项目内不同子目录下的模块就可以相互导入。
用 Spyder 打开的一个目录不一定就是项目目录¶
虽然你可以直接用 Spyder 打开一个目录,但这并不意味着它自动成为了 Spyder 项目。下面详细介绍两者的区别:
普通打开目录¶
当你仅仅是在 Spyder 中通过文件菜单打开一个目录时,只是将该目录下的文件加载到了 Spyder 的编辑器中。这种操作没有激活 Spyder 的项目管理功能,比如不会保存特定于该目录的配置信息,关闭 Spyder 后再次打开时,需要重新定位到该目录。而且,普通打开的目录不会自动被添加到 Python 的搜索路径中,除非你手动进行设置。
创建项目目录¶
若要将一个目录变成 Spyder 项目,需要通过以下步骤操作:
打开 Spyder,点击菜单栏中的“Projects”(项目)。
选择“New project”(新建项目)。
在弹出的对话框中,选择“Existing directory”(现有目录),然后指定你想要作为项目根目录的文件夹。
点击“Create”(创建),这样该目录就成为了一个 Spyder 项目。
创建项目后,Spyder 会在项目根目录下创建一个隐藏的 .spyproject 文件夹,用于存储项目的配置信息,例如打开的文件、编辑器设置等。下次打开该项目时,Spyder 会自动恢复之前的工作状态。同时,项目根目录会自动添加到 Python 的搜索路径中,方便项目内模块的相互引用。