如何在Python中从外部访问模块?

42 投票
3 回答
89946 浏览
提问于 2025-04-18 14:07

我该如何访问另一个文件夹里的模块呢?

这是文件结构:

/<appname>
    /config
        __init__.py
        config.py
    /test
        test.py # I'm here

我想从 test.py 里访问 config.py 的函数。我该怎么做呢?
这是我的导入方式:

import config.config

当我运行 test.py 脚本时,它总是会显示:

ImportError: No module named config.config

我是不是做错了什么?

3 个回答

12

把应用程序的目录添加到模块搜索路径中。

比如说:

PYTHONPATH=/path/to/appname python test.py
20

你只能导入在你环境中可见的模块。你可以用这个方法来检查你的环境。

import sys
print sys.path

你会发现 sys.path 是一个列表,所以你可以往里面添加元素:

sys.path.append('/path_to_app/config')

这样你就应该能够导入你的模块了。

顺便说一下,这个问题有很多人问过。

60

最简单的方法就是修改一下 sys.path 这个变量(它定义了导入模块时的搜索路径):

# Bring your packages onto the path
import sys, os
sys.path.append(os.path.abspath(os.path.join('..', 'config')))

# Now do your import
from config.config import *

撰写回答