首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“将目录标记为源代码根目录”的真正目的是什么?

“将目录标记为源代码根目录”的真正目的是什么?
EN

Stack Overflow用户
提问于 2019-08-05 22:32:37
回答 1查看 3.7K关注 0票数 10

在Pycharm中,如果您右键单击项目中的文件夹,则可以将其标记为sources root,这样您就可以从此文件夹和子文件夹中导入模块。

然而,这样做只会让你的程序在Pycharm内部运行,如果我试图从Pycharm外部(例如从控制台)执行,它会抱怨找不到某些模块,这就是我面临的问题。

如果我将某个文件夹标记为源代码根目录,我的程序运行得很好,但我需要了解它是做什么的,这样我就可以配置程序来找到这个模块,即使不使用Pycharm。

我想知道这个选项到底做了什么,以及如何在不使用它的情况下获得相同的行为。

它只是在根文件夹中添加一个__init__.py文件?它是不是在做这样的事情:

代码语言:javascript
运行
复制
import sys
sys.path.insert(0, my_folder)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-09 20:09:56

首先,__init__.py将一个目录标记为常规的软件包目录(这是3.3版本之前的版本,在3.3+中不再需要)。这样,python将在该目录中查找要导入的子模块。

"Mark directory as source root“设置环境的路径(或PYTHONPATH)。在外壳中,它会像这样,

代码语言:javascript
运行
复制
export PYTHONPATH="${PYTHONPATH}:/your/source/root"

PYTHONPATH保存模块文件的默认搜索路径。这将使解释器能够在附加的路径中搜索模块。默认值依赖于安装(通常它包含Python二进制文件的路径)。

您还可以在python文件中使用sys.path操作此搜索路径。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57360738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档