Python:从项目导入而不手动设置PYTHONPATH

2024-09-27 07:24:01 发布

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

如何在不重置PYTHONPATH的情况下从项目中的不同位置导入包和模块(因为这似乎是一个“黑客”解决方案)。你知道吗

例如,如果我有以下目录结构:

proj
├── __init__.py
├── important_file.py
└── subdirectory/
    ├── __init__.py
    └── script.py

如何导入重要内容_文件.py从内部脚本.py?我能否在我的项目中指定proj是我的根目录,这样我就可以用import proj.important_file导入重要的文件?你知道吗


Tags: 模块文件项目py目录init情况解决方案
3条回答

你可以用

import sys
sys.path.append('/path/to/root/directory')

从你喜欢的目录导入。至少,这在过去对我有用。或许还有更不“黑”的解决方案:)

我倾向于使用“pythonic”的解决方案,而不一定是@Gijs所建议的,我称之为一种变通方法。你知道吗

所以这件事我做得不多,但当我需要做的时候,我花了很多时间在上面。看看这个my repo。在其中,我有一个单元测试目录,我导入了它核心.py进入测试_核心.py. 你知道吗

项目文件夹的结构如下。你知道吗

SNA (this is called first-repo on git, but SNA on my machine)
├── bin/
└── sna/
    ├── core.py
    └── test/
        └── test_core.py

text_core.py中,我从核心.py. 我使用下面的行来实现这一点。你知道吗

from SNA.sna.core import *

一般的格式是这样的。你知道吗

from PROJECTNAME.DIR.FILE import * (or specific functions)

希望这有帮助!你知道吗

可以使用相对导入

# inside subdirectory/script.py
from .. import important_file

但实际上最好的解决方案是将它添加到PYTHONPATH中并

import proj.important_file

相关问题 更多 >

    热门问题