如何使用PYTHONPATH在Python中导入整个文件夹

2024-03-28 20:12:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在尝试向PYTHONPATH添加一个项目文件夹。我创建了一个.pth文件,并将该文件的根路径添加到我的site packages文件夹中。但是,当我试图导入此文件夹中的.py文件时,只能导入根文件夹下的那些文件(例如“/sample”),但无法导入/sample文件夹下的子文件夹(例如/sample/01)。所以我的问题是什么文件以及如何更改它,使我的整个文件夹(包括它的所有子文件夹)都可以导入。在

在最坏的情况下,我能想到的是在站点包中写下.pth文件中的所有文件夹名称。但我相信Python将提供一种更有效的方法来实现这一点。在


Tags: 文件sample项目方法py路径文件夹名称
1条回答
网友
1楼 · 发布于 2024-03-28 20:12:25

我从来没有机会使用过.pth文件。我更喜欢双管齐下的方法:

  • 使用一个运行env pythonshebang,因此它在您的路径上使用第一个python,即:

#!/usr/bin/env python

  • 使用virtualenv保持不同的环境,并将任何给定程序/程序集所需的库组合在一起。这还有一个额外的好处,即需求文件(来自pip freeze输出)可以存储在源代码管理中,并且可以在任何地方轻松地重新创建环境,例如用于Jenkins测试等。在

在virtualenv的情况下,python解释器可以从virtualenvbin目录显式调用。在

对于本例中的本地模块,可以使用本地PyPI服务器来集中定制模块,它们也可以包含在requirements文件中(通过pip的extra index选项)。在

编辑并回复OP:

我以前没有使用过SublimeREPL,但是根据您描述的场景,我认为总体上最简单的方法可能是将目录简单地symlink到您的站点包(或dist packages,视情况而定)目录。在

对于生产服务器来说,这不是一个理想的场景,但就您的目的而言,在客户机上,我认为这是可以的。如果您不想使用文件夹名,即import ch1/foo,那么您需要在这些目录中使用符号链接,这样您就可以简单地import foo。如果您可以使用dir名称,即import ch1/foo,那么您只需要symlink顶层的code目录。在

相关问题 更多 >